Javascript Object.values不创建";“适当的”;排列
我正在使用Javascript Object.values不创建";“适当的”;排列,javascript,Javascript,我正在使用Object.values()创建一个数组。将其与硬编码等效项进行比较时,返回false var newArr = Object.values({1: 50, 2: 50, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0}); console.log(newArr); // [50, 50, 0, 0, 0, 0, 0]; var compareArr = [50, 50, 0, 0, 0, 0, 0]; console.log(compareArr); // [50, 50
Object.values()
创建一个数组。将其与硬编码等效项进行比较时,返回false
var newArr = Object.values({1: 50, 2: 50, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0});
console.log(newArr); // [50, 50, 0, 0, 0, 0, 0];
var compareArr = [50, 50, 0, 0, 0, 0, 0];
console.log(compareArr); // [50, 50, 0, 0, 0, 0, 0];
console.log(newArr === compareArr); // false
我在这里遗漏了什么或者它不应该返回true吗?JavaScript比较了非原语类型的引用(对于on
=
和==
)。数组不是基元类型。这意味着如果它们不是同一个实例,则比较将返回false JavaScript比较非原语类型的引用(对于on=
和==
)。数组不是基元类型。这意味着如果它们不是同一个实例,则比较将返回false 您可以使用JSON.stringify()
进行比较
var newArr=Object.values({
1: 50,
2: 50,
3: 0,
4: 0,
5: 0,
6: 0,
7: 0
});
var compareArr=[50,50,0,0,0,0,0];
console.log(JSON.stringify(compareArr)=JSON.stringify(newArr));//true
您可以使用JSON.stringify()
进行比较
var newArr=Object.values({
1: 50,
2: 50,
3: 0,
4: 0,
5: 0,
6: 0,
7: 0
});
var compareArr=[50,50,0,0,0,0,0];
console.log(JSON.stringify(compareArr)=JSON.stringify(newArr));//true
比较两个具有不同对象引用的数组。比较两个具有不同对象引用的数组。谢谢!但是使用==应该返回true吗?@louis9898这一点很好。没有,我改了答案。作为一个整体,比较也是如此。==和===之间的区别在于后者不会执行隐式类型强制谢谢!但是使用==应该返回true吗?@louis9898这一点很好。没有,我改了答案。作为一个整体,比较也是如此。==和===之间的区别在于后者不会执行隐式类型强制