购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.7 本章常见面试题

1. 如何移除一个数组里面重复的元素,请写出相应的代码。

方法1:遍历数组中的元素,依次两两比较,如果相等,则把后面一个元素从数组中删除。示例如下:

var arr = [1, 1, 2, 4, 2];
for (var i = 0; i < arr.length; i++) {
   for (var j = i + 1; j < arr.length; j++) {
       if (arr[i] == arr[j]) {
           arr.splice(j, 1);// 删除数组元素
           j--;
       }
   }
}
console.log(arr);// 输出[1, 2, 4];

方法2:创建一个新数组,把原数组中的元素逐个添加到新数组中。判断新数组中是否已经包含原数组中的元素,如果没有,则把原数组中的元素添加到新数组;如果已经存在,则不添加。示例如下:

var arr = [1, 1, 2, 4, 2];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
   if (newArr.indexOf(arr[i]) === -1) {
       newArr.push(arr[i]);
   }
}
console.log(newArr);// 输出[1, 2, 4];

2. forEach()方法与map()方法有和异同?

(1)相同点。

①都是循环遍历数组中的每一项。

②只能遍历数组。

(2)不同点。

① map()方法会分配内存空间存储新数组并返回,forEach()方法不会返回数据。

② forEach()方法允许callback更改原始数组的元素。map()方法不改变原数组。 LDvYzXfi2wzumosVZi+V0juIXSeWYxEk5js3XRCwZzz6ARCthYSg1ALCEmtB13GL

点击中间区域
呼出菜单
上一章
目录
下一章
×