"在运算符"之间有什么区别?和"包括()" JS

时间:2018-01-29 10:34:50

标签: javascript arrays

我的意思是,includes是一个数组原型,in也可以用于数组,那么两者之间的主要区别是什么?

4 个答案:

答案 0 :(得分:2)

Array.includes()检查数组中是否存在值,而in operator检查对象中是否存在键(或者是数组中的索引)。

示例:

var arr = [5];

console.log('Is 5 is an item in the array: ', arr.includes(5)); // true
console.log('do we have the key 5: ', 5 in arr); // false
console.log('we have the key 0: ', 0 in arr); // true

答案 1 :(得分:1)

Array#includes确定给定值是否为数组中的条目。 in检查给定字符串是否是对象(或其任何原型)的已知属性。它们是非常不同的东西。

  

...“in”也可以与数组一起使用......

可以检查具有给定名称的属性是否存在,但这与includes的做法非常不同:

var a = [10];
console.log(a.includes(10)); // true, 10 is an entry in
console.log(10 in a);        // false, there's no property called "10" in the array
console.log(0 in a);         // true, there IS a property called "0" in the array

在数组上使用in是一种相对不寻常的操作,主要用于sparse arrays

答案 2 :(得分:0)

使用in运算符,您可以检查密钥是否存在,includes()可以检查值是否存在

答案 3 :(得分:0)

“includes”检查数组中是否存在值“in”  operator检查obj / array中是否存在键/索引。

    var arr = [15,27,39,40,567],obj = {num1:3,num2:34,num3:89};;
    arr.includes(27); //returns true checks 27 as a value in the array
    2 in arr;// returns true checks 2 as index in the array
    "num1" in obj; //returns true checks num1 as key in obj