【问题标题】:Getting Uncaught TypeError: Cannot set property '0' of undefined error获取未捕获的类型错误:无法设置未定义错误的属性“0”
【发布时间】:2020-03-20 00:42:55
【问题描述】:
我正在尝试在 JavaScript 中创建一个字数计数算法,我正在创建一个 for-in 循环以从数组中获取每个单词,然后将它们推送到对象,但是在我将每个对象键设置为每个数组时出现错误价值。
const wordCount = input => {
let newArr = input.split(" ");
let obj = {};
for (let i in newArr) {
console.log(newArr[i]); // This returns value
obj.newArr[i] = 1; // This gives error:- Uncaught TypeError: Cannot set property '0' of undefined
}
console.log(obj);
};
wordCount("heyy how you doin heyy");
【问题讨论】:
标签:
javascript
arrays
object
word-count
【解决方案1】:
const wordCount = input => {
let newArr = input.split(" ");
let obj = {};
for (let i in newArr) {
// console.log(newArr[i]); // This returns value
obj[newArr[i]] = 1; // This gives error:- Uncaught TypeError: Cannot set property '0' of undefined
}
console.log(obj);
};
wordCount("heyy how you doin heyy");
【解决方案2】:
您的obj 对象中没有属性newArray。
const wordCount = input => {
let newArr = input.split(" ");
let obj = {newArr: []};
for (let i in newArr) {
console.log(newArr[i]); // This returns value
obj.newArr[i] = 1; // This gives error:- Uncaught TypeError: Cannot set property '0' of undefined
}
console.log(obj);
};
wordCount("heyy how you doin heyy");
【解决方案3】:
您需要将newArr 初始化为obj 中的一个字段:
const wordCount = input => {
let newArr = input.split(" ");
let obj = { newArr: [] };
for (let i in newArr) {
console.log(newArr[i]); // This returns value
obj.newArr[i] = 1; // This gives error:- Uncaught TypeError: Cannot set property '0' of undefined
}
console.log(obj);
};
wordCount("heyy how you doin heyy");