Javascript TypeError,无法读取未定义的属性0
我试图将数组中的所有值返回给一个对象,对象中每个键的值将基于它们在数组中出现的次数。 当我尝试运行它时,会收到错误消息“TypeError:无法读取未定义的属性“0” 在错误消息的上方,它也会被写入Javascript TypeError,无法读取未定义的属性0,javascript,Javascript,我试图将数组中的所有值返回给一个对象,对象中每个键的值将基于它们在数组中出现的次数。 当我尝试运行它时,会收到错误消息“TypeError:无法读取未定义的属性“0” 在错误消息的上方,它也会被写入 if(result.arr[i]==未定义){ let result={} 设arr=[0,4,4,5,6,2,1] for(设i=0;i
if(result.arr[i]==未定义){
let result={}
设arr=[0,4,4,5,6,2,1]
for(设i=0;i
定义对象时,需要将arr
属性分配给结果
对象:
let result={arr:[]},
arr=[0,4,4,5,6,2,1];
for(设i=0;i console.log(result);
您试图访问对象结果上名为“arr”的属性。该属性不存在,因此会出现未定义的错误
请尝试以下方法:
let result={}
设arr=[0,4,4,5,6,2,1]
for(设i=0;i }
result.arr未定义。您是想用let result={arr:[]};
初始化吗?只需使用arr[i]
result.arr
不存在。result
没有属性。result
和arr
是独立的对象。只需使用arr
本身,不带前缀。在您的代码中,result
似乎没有任何用途。这会更改代码的含义does@ADyson不,没有。重读这些问题我在试图理解你写的代码中发生了什么。你的代码有什么不同之处
let result = {}
let arr = [0, 4, 4, 5, 6, 2, 1]
for (let i = 0; i < arr.length; i++) {
if (result.arr[i] === undefined) {
result.arr[i] = arr[i]
} else {
result.arr[i] ++
}
}