有点困惑,我有下面的代码循环遍历一个数组,如果该值不在另一个数组中,则将其推入。但是无论indexOf语句的计算结果为true还是false,它都会被推入数组中 - 不太确定为什么会这样。
function findUnique(fieldId) {
let uniques = [];
for (let i = 0; i < data.length; i++){
console.log(uniques.indexOf(data[i][fieldId]) === -1);
if (uniques.indexOf(data[i][fieldId] === -1)) {
uniques.push(data[i][fieldId]);
}
}
return uniques;
}
假设数据中有2项......
首先通过将注销-1,因为它不在数组中,然后推送到数组......
第二遍记录0,因为它在数组中,但都将它推入数组......
uniques注销为[&#39; a&#39;,&#39; a&#39;]
答案 0 :(得分:0)
只是一个错字。您目前正在寻找阵列中的false
。
更改
if (uniques.indexOf(data[i][fieldId] === -1)) {
到
if (uniques.indexOf(data[i][fieldId]) === -1) {