Javascript 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

我试图将数组中的所有值返回给一个对象,对象中每个键的值将基于它们在数组中出现的次数。 当我尝试运行它时,会收到错误消息“TypeError:无法读取未定义的属性“0” 在错误消息的上方,它也会被写入
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;iconsole.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] ++
    }
  }