繁体   English   中英

Javascript Object.keys问题

[英]Javascript Object.keys issue

当我运行以下代码时:

var object1 = {
  a: 1,
  b: 2
};
var object2 = {
  b: 4,
  c: 3
};

var obj1Keys = Object.keys(object1);
var obj2Keys = Object.keys(object2);
console.log(obj2Keys[0] in obj1Keys);

控制台记录为false。 显然,对象1和对象2都具有属性“ b”。 我究竟做错了什么?

您需要改用includes()方法。

console.log(obj1Keys.includes(obj2Keys[0]));

这是因为in运算符可用于对象键。 的“钥匙”到阵列是数索引( 01 ,等等),而不是它们的值

您需要获取对象,而不是带有用于检查和in操作符的键的数组。 此检查对象的键,并且数组具有索引和长度属性。

如果您想使用键来获取数组,cou可以使用Array#includes

 var object1 = { a: 1, b: 2 }, object2 = { b: 4, c: 3 }, obj1Keys = Object.keys(object1), obj2Keys = Object.keys(object2); console.log(obj2Keys[0] in object1); console.log(obj1Keys.includes(obj2Keys[0])); 

通过询问obj2Keys[0] in obj1Keys ,您正在询问'b'是否为['a', 'b'] 不是。 它的 ['a', 'b'] 您可以这样检查:

obj1Keys.includes(objKeys[0])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM