4-3请老师检查,,老师题目中有提到直接在原数组上进行操作是什么意思,那不在原数组上操作是什么样的一个状态 我代码写的有问题吗吗
<!DOCTYPE html><html lang="en">
<head> <meta charset="UTF-8"> <title>数组</title></head>
<body> <script> var arr = ["有效", "无效", "有效", "无效", "无效", "有效"];
// 遍历for循环 for (var i = 0; i < arr.length; i++) { // 如果数组元素等于 '无效',就使用splice()删除指定元素 if (arr[i] == '无效') { // 删除下标为i 长度为1的数组元素 arr.splice(i, 1); // 由于元素删除之后,索引位置会变,所以需要手动矫正下标 i--; } } console.log(arr); </script></body>
</html>
搜索
复制
正在回答 回答被采纳积分+1
同学你好,代码效果正确;针对于原数组,我们可以举个例子:
pop()方法从数组中删除最后一个元素并返回该元素,这个方法改变了原来的数组长度;改变原数组;
var str = [1,2,3,4,5]
var str= str.pop();
console.log(str)
返回的结果为:[1,2,3,4];
如果想在再删除一个元素,还是用的原来的数组;
str.pop();
console.log(str)此时的数组为[1,2,3]
原数组又改变了;所以可以说是在原数组上操作;
concat();连接数组,返回新的数组;不改变原数组;
var arr = [1,2];
var arrNew = arr.concat([3,4]);
console.log(arr)
返回数组[1,2]; 还是原来的数组,没有变化;如果想再拼接新的数组;
是不是需要从上一步拼接好的新数组去拼接;
arrNew.concat([5,6]);
console.log(arrNew.concat([5,6]))
返回[1, 2, 3, 4, 5, 6]
由此可见,这个方法就不能在原来的数组上进行操作;
通过比较可以看出,pop()方法可以在原数组上进行操作;即当数组方法改变原数组的时候,
可以在原数组上进行操作的;如果数组方法不改变原数组,就需要在得到的最新数组上进行操作;
即不可以在原数组上进行操作;
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星