Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改数组中对象的值-Javascript_Javascript - Fatal编程技术网

如何更改数组中对象的值-Javascript

如何更改数组中对象的值-Javascript,javascript,Javascript,我不明白为什么它会打印-1,即使指定的对象明显存在于数组中。如果要这样做,您需要findIndex const无意义=[{x:'1'}]; console.log(无意义的.findIndex(item=>item.x=='1'));//打印0 如果您想这样做,您需要findIndex const无意义=[{x:'1'}]; console.log(无意义的.findIndex(item=>item.x=='1'));//打印0 对象是通过其引用进行比较的,而不是通过其值进行比较的 数组中的对象

我不明白为什么它会打印-1,即使指定的对象明显存在于数组中。

如果要这样做,您需要
findIndex

const无意义=[{x:'1'}];
console.log(无意义的.findIndex(item=>item.x=='1'));//打印0

如果您想这样做,您需要
findIndex

const无意义=[{x:'1'}];
console.log(无意义的.findIndex(item=>item.x=='1'));//打印0

对象是通过其引用进行比较的,而不是通过其值进行比较的

数组中的对象与传递给
indexOf
函数的对象不同,即使它们具有相同的键值对

下面的代码将为您提供正确的索引

constobj={x:'1'};
常量无意义=[obj];

console.log(胡说八道.indexOf(obj))对象是通过它们的引用进行比较的,而不是通过它们的值进行比较的

数组中的对象与传递给
indexOf
函数的对象不同,即使它们具有相同的键值对

下面的代码将为您提供正确的索引

constobj={x:'1'};
常量无意义=[obj];

console.log(胡说八道.indexOf(obj))在javaScript中,对象通过引用进行比较,而不是通过值进行比较

const无意义=[{x:'1'}];

log(无意义的.map(o=>o.x).indexOf('1')在javaScript中,对象通过引用进行比较,而不是通过值进行比较

const无意义=[{x:'1'}];

log(无意义的.map(o=>o.x).indexOf('1')旁注:如果您使用变量来启动对象,那么它会起作用。例如:
const a={x:1}
常量arr=[a]
arr.indexOf(a)旁注:如果您使用变量来启动对象,那么它会起作用。例如:
const a={x:1}
常量arr=[a]
arr.indexOf(a)
const nonsense = [{x: '1'}];
console.log(nonsense.indexOf({x: '1'})); // prints -1