Javascript 为什么此筛选函数将索引设置为彼此相等?
有人能告诉我为什么在删除阵列中的重复项时可以这样做吗?将索引设置为彼此相等有什么意义 将索引设置为彼此相等有什么意义 我想你指的是这一行:Javascript 为什么此筛选函数将索引设置为彼此相等?,javascript,arrays,function,Javascript,Arrays,Function,有人能告诉我为什么在删除阵列中的重复项时可以这样做吗?将索引设置为彼此相等有什么意义 将索引设置为彼此相等有什么意义 我想你指的是这一行: const nonDuplicate = function(arr) { let filteredArr = arr.filter(function(item, index){ if(arr.indexOf(item) === index) return item }) console.log(
const nonDuplicate = function(arr) {
let filteredArr = arr.filter(function(item, index){
if(arr.indexOf(item) === index)
return item
})
console.log(filteredArr)
}
nonDuplicate([1, 2, 3, 1, 3, 4, 4, 5, 6])
==
操作符实际上是一个操作符。它实际上解析为一个布尔值<代码>真或假
打开JavaScript控制台并输入以下内容:
if(arr.indexOf(item) === index)
您将返回true
。同样,如果您输入1==2
,您将得到false
现在,对于实际代码,有一个。这将返回数组中项目的索引,如果未找到,则返回
-1
。因此,对于数组中的每个项,它们检查这个特定项的第一个索引是否等于这个特定项的索引。其思想是,当循环到达该示例数组中的第二个1
时,indexOf
实际上将返回0
,因为与值1
匹配的第一个索引是0
,没有任何索引被设置为彼此相等<代码>=是一种平等测试。至于它为什么起作用:假设你有一个列表[1,1,1,1,1],列表中“1”的索引是什么?请记住,您只能得到一个答案,那么对于该列表中的多少元素,将是这种情况?学习调试console.log(arr.indexOf(item),index,arr.indexOf(item)==index)
1 === 1