我正在尝试将数组中的所有值返回给对象,并且对象中每个键的值将基于它们在数组中出现的次数。
当我尝试运行它时,出现错误消息“ TypeError:无法读取未定义的属性'0'”
错误消息上方也将其写入
if (result.arr[i] === undefined) {
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] ++
}
}
答案 0 :(得分:1)
定义对象时,需要为arr
对象分配result
属性:
let result = { arr: [ ] },
arr = [0, 4, 4, 5, 6, 2, 1];
for( let i = 0; i < arr.length; i++ )
{
if( ! result.arr[i] )
{
result.arr[i] = arr[i]
}
else
{
result.arr[i]++;
}
}
console.log(result);
答案 1 :(得分:-1)
您要尝试的是访问对象结果上称为“ arr”的属性。该属性不存在,因此会出现未定义的错误。
尝试以下方法:
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]] = 1
} else {
result[arr[i]] ++
}
}