<script type="text/javascript">
var arr=["我","是","帅哥"];
var newArr=[];
for (var i = arr.length-1; i >=0; i--) {
newArr[newArr.length]=arr[i]
}
console.log(arr)
console.log(newArr)
script>
请教一下各位,按我的理解,以下代码为什么不能这样写,为什么运行的结果是错误的?
<script type="text/javascript">
var arr=["我","是","帅哥"];
var newArr=[];
for (var i = arr.length-1; i >=0; i--) {
for(var j=0;j<=arr.length;j++){
newArr[j]=arr[i]
//这里不是应该将arr[3]的下标内容帅哥赋给newArr[0]接受帅哥内容吗?
}
}
console.log(arr)
console.log(newArr)
script>
1.你是不是用了中文符号
2.代码中的变量newArr是一个空数组,当第二个for循环执行时,newArr数组中的每一个元素都会被赋值为arr[i],因此最终newArr数组中的所有元素都是arr[0],即"我"。
<script type="text/javascript">
var arr=["我","是","帅哥"];
var newArr=[];
for (var i = arr.length-1; i >=0; i--) { // 循环数为 2,1,0
newArr[newArr.length]=arr[i] // newArr[2,1,0] == arr[0,1,2] 完成逆转
}
console.log(arr)
console.log(newArr)
</script>
<script type="text/javascript">
var arr=["我","是","帅哥"];
var newArr=[];
for (var i = arr.length-1; i >=0; i--) {
for(var j=0;j<=arr.length;j++){ // i 为 2,1,0时,j 分别为 0,1,2,即,三个数都等于arr当前循环锁指向的值
newArr[j]=arr[i]
//这里不是应该将arr[3]的下标内容帅哥赋给newArr[0]接受帅哥内容吗?
}
}
console.log(arr)
console.log(newArr)
</script>
以下5个方法都可以用来检索一个字符串中是否包含特定的序列。
其中,前两个方法得到的指定元素的索引值,并且只会返回第一次匹配到的值的位置。后三个方法返回的是布尔值,表示是否匹配到指定的值。