我试图返回一个只有唯一元素的数组,这些元素在数组中没有重复,没有特定的顺序.
[1,2,3,3,3,4,4,2]
会回来的 1
["hello", "truck", 2, "truck", 2, "truck"]
会回来的 "hello"
到目前为止,我只能使用filter()函数返回唯一元素,但我不知道该去哪里.
基本上如果有重复项,我希望从数组中删除这两个值.
这听起来很简单,但我有一个严重的心理打嗝.
以下是我的代码:
function diff(arr1, arr2) { var newArr = []; newArr = arr1.concat(arr2); newArr = newArr.filter(function(elem, index, self) { return index == self.indexOf(elem); }); console.log(newArr); return newArr; } diff([1, 2, 3, 5], [1, 2, 3, 4, 5]); //should return 4
void.. 6
比较indexOf
和lastIndexOf
,如果它们相等则元素没有重复.使用.filter
此逻辑.
function diff(arr1, arr2) {
return arr1.concat(arr2).filter(function(elem, index, self) {
return self.indexOf(elem)==self.lastIndexOf(elem);
});
}
alert(diff([1, 2, 3, 5], [1, 2, 3, 4, 5]));
比较indexOf
和lastIndexOf
,如果它们相等则元素没有重复.使用.filter
此逻辑.
function diff(arr1, arr2) {
return arr1.concat(arr2).filter(function(elem, index, self) {
return self.indexOf(elem)==self.lastIndexOf(elem);
});
}
alert(diff([1, 2, 3, 5], [1, 2, 3, 4, 5]));