今天日记:
学到JS要做数组去重,将旧的数组遍历,查询新数组的索引是不是有元素,用等于-1来判断此元素不在旧数组,于是写代码如下。
function a(arr) {
var n = [];
for (var k in arr) {
if (n.indexOf(k) == -1) {
n.push(k);
}
}
return n;
}
console.log(a([1, 4, 2, 3, 2, 5, 3, 4, 3]));
但是结果出来,数组却是 [0,1,2,3,4,5,6,7,8]
然后思考想起来 for (var k in arr) 由于之前python的思维,理所应当是直接遍历元素。对象遍历用这种方法,遍历输出的是属性,如果是属性值便需要写成obj[k]。
以此类推,JS中数组这种方法遍历是不是遍历的也是索引值?那么更改为:
function a(arr) {
var n = [];
for (var k in arr) {
if (n.indexOf(arr[k]) == -1) {
n.push(arr[k]);
}
}
return n;
}
console.log(a([1, 4, 2, 3, 2, 5, 3, 4, 3]));
结果为[1,4,2,3,5] 成功去重 且比另一种for (var i=0;i<arr.length;i++) 写法要便捷一点
JS去重案例
最新推荐文章于 2023-09-04 21:19:34 发布