我有这个数组(下面),我试图检查它是否有特定的值。按特定顺序检查数组中的多个值
var a = [ true, "lipsum" ];
我需要做的,是检查是否a[0]
是真实的,如果a[1]
是 “lipsum”
我可以检查分开这两个值:
a[0] === true && a[1] === 'lipsum' // true
...缩短代码有点,我试图做到这一点:
a === [ true, 'lipsum'] // false
为什么上面的代码示例是错误的,是否有另一种方法来实现我想要做的事情?
我可以这样做:
a.join() === 'true,lipsum' // true
虽然我不禁觉得有一个更好的办法..?
我跑了jsperf看看有多少'.join'会减慢它的速度,这并不是那么... http://jsperf.com/array-vs-string123456789 ...但我认为它不值得去检查每一个单独。 – Joonas 2013-02-14 00:13:39
@Joonas'.join'会将元素强制转换为字符串,严格的比较将不再有意义。 – 2013-02-14 00:15:30
我不明白它有没有道理? – Joonas 2013-02-14 00:16:29