此问题已在此处有答案:
In Javascript, how do I check if an array has duplicate values?(10个答案)
9小时前关闭。
这篇文章是编辑并提交审查1小时前.
我有一个字符串和空值的列表。现在我想检查列表中的所有字符串是否都相同,是否应该忽略null。比如说
[null, "a", "a", null, "a"]
的计算结果应为true
,因为所有字符串都相等[null, "a", "a", null, "b"]
的计算结果应该是false
,因为存在“b”和“a”
SO上还有其他一些问题与查找重复或相等的值有关,但它们似乎都没有考虑null
值。
我已经考虑过用
- 保存第一个字符串,然后在以后的迭代中与它进行比较
- 一个
filter
后接every
然而,我想知道是否有一个更好的更直观的方法来做到这一点。
2条答案
按热度按时间fhg3lkii1#
你可以这样做
mzmfm0qo2#
你可以用一个空变量,后面跟着every:
every((v,i,a) => v === null || ...)
检查每个元素是null
还是...v === a[j??=i]
仅在v
为notnull
时执行j === null || j === undefined ? (j = i) : j
的简写,因此j
将采用第一个i
,其中v !== null
array.every((v,i,a) => v === null)
和array.every((v,i,a) => v === a[j??=i])
,所以我们还想通过检查索引j
不再为null来检查v === a[j??=i]
是否至少执行过一次。