你可以使用数组的值作为比较

时间:2016-03-24 13:50:20

标签: javascript arrays



var hits = ["a", "b", "c"];

if (hits !== ["a", "b", "c"]){
//Do some stuff here
};




您可以使用数组的值作为比较吗?以上似乎对我不起作用我想知道这是否是这样的方法,或者是否有另一种方法来访问数组的文字值进行比较。

3 个答案:

答案 0 :(得分:5)

相等运算符(===!==)在对象的情况下比较引用,而不是值。请注意,在JavaScript数组中是对象。因为这是因为它们是两个不同的数组(它们看起来相同,它们包含相同的值,但它们不是相同的数组)它们的引用不同:

  

如果两个操作数都是对象,则JavaScript比较内部引用,当操作数引用内存中的同一对象时,它们是相等的。

您可以在MDN上了解更多相关信息。

注意: ==!=相等运算符也会通过引用比较对象,但由于它们不仅仅是简单的比较(并且通常是意外的),因此通常建议不要使用它们并始终坚持严格的相等运算符(===!==)。

如何比较数组?

至少有几种不同的方法。有些人建议比较两个阵列的JSON.stringify但是,即使它适用于简单的情况,它在性能方面也不是一个好的解决方案。您可以在https://stackoverflow.com/a/14853974/704894

找到更好的方法

如果您碰巧使用某种实用程序库,例如lodashunderscore,则此功能已经存在!见https://lodash.com/docs#isEqual

答案 1 :(得分:0)

你可以写这个

f = open('C:myfile.csv', 'rb')
lines = f.readlines()
f.close()

filename = 'myfile.csv'

f = open(filename, 'wb')
for line in lines:
    if line != "1":
        f.write(line)

f.close()

答案 2 :(得分:0)

你不能这样做,因为Javascript处理数组的方式 - 它不是检查值是否相同,它检查对象是否是同一个对象(它不是)。