Javascript 来自 for 循环的变量不会在 push 方法中被调用
Javascript variable from for loop does not get called in push method
我试过 items.map((item) => arrs.push({item._id:item.word}));
但是键的第一个元素根本不起作用,所以我写了一个基本的 for 循环。现在创建 for 循环工作正常,并且循环后的控制台日志记录 arrs 显示值的正确信息,但所有这些键的键都将“temp”显示为字符串,而不是 items[i]._id
中所需的 id。在 VS 代码中,let temp=item...
中的 temp 变灰并显示“已声明 temp,但从未读取其值”。现在,如果我在 let temp...
和 arrs.push...
之间放置一个 console.log(temp)
,它会正确地记录临时变量中的值。
const arrs = [];
for (let i = 0; i < items.length; i++) {
let temp = items[i]._id;
arrs.push({ temp: items[i].word });
}
我认为 temp 在同一范围内,所以它应该可以工作。不知道发生了什么。
我尝试创建不同的范围但没有任何效果。
您将 属性 名称声明为“temp”,而不是将其指定为值。如果您试图使 属性 名称成为 temp
的 值 ,您可以使用计算的 属性 名称,将其用正方形包围括号 []
.
const arrs = [];
for (let i = 0; i < items.length; i++) {
arrs.push({[items[i]._id]: items[i].word});
}
这将创建一个具有键 items[i]._id
和值 items[i].word
的对象。
更好的是,您可以使用 map
:
const arrs = items.map(item => { return {[item._id]: item.word}});
按照这个代码片段,
创建了一个对象并在循环中将它们推入 arrs:
let items = [
{_id:'1',
word:'test'
},
{_id:'2',
word:'test2'
},
{_id:'3',
word:'test3'
},
{_id:'4',
word:'test4'
}
];
let arrs = [];
for (var i = 0; i < items.length; i++){
var obj = {
[items[i]._id] : items[i].word
}
arrs.push(obj);
}
console.log(arrs)
let items = [
{_id:'1',
word:'test'
},
{_id:'2',
word:'test2'
},
{_id:'3',
word:'test3'
},
{_id:'4',
word:'test4'
}
];
let arrs = [];
for (var i = 0; i < items.length; i++){
var obj = {
[items[i]._id] : items[i].word
}
arrs.push(obj);
}
console.log(arrs)
我试过 items.map((item) => arrs.push({item._id:item.word}));
但是键的第一个元素根本不起作用,所以我写了一个基本的 for 循环。现在创建 for 循环工作正常,并且循环后的控制台日志记录 arrs 显示值的正确信息,但所有这些键的键都将“temp”显示为字符串,而不是 items[i]._id
中所需的 id。在 VS 代码中,let temp=item...
中的 temp 变灰并显示“已声明 temp,但从未读取其值”。现在,如果我在 let temp...
和 arrs.push...
之间放置一个 console.log(temp)
,它会正确地记录临时变量中的值。
const arrs = [];
for (let i = 0; i < items.length; i++) {
let temp = items[i]._id;
arrs.push({ temp: items[i].word });
}
我认为 temp 在同一范围内,所以它应该可以工作。不知道发生了什么。
我尝试创建不同的范围但没有任何效果。
您将 属性 名称声明为“temp”,而不是将其指定为值。如果您试图使 属性 名称成为 temp
的 值 ,您可以使用计算的 属性 名称,将其用正方形包围括号 []
.
const arrs = [];
for (let i = 0; i < items.length; i++) {
arrs.push({[items[i]._id]: items[i].word});
}
这将创建一个具有键 items[i]._id
和值 items[i].word
的对象。
更好的是,您可以使用 map
:
const arrs = items.map(item => { return {[item._id]: item.word}});
按照这个代码片段, 创建了一个对象并在循环中将它们推入 arrs:
let items = [
{_id:'1',
word:'test'
},
{_id:'2',
word:'test2'
},
{_id:'3',
word:'test3'
},
{_id:'4',
word:'test4'
}
];
let arrs = [];
for (var i = 0; i < items.length; i++){
var obj = {
[items[i]._id] : items[i].word
}
arrs.push(obj);
}
console.log(arrs)
let items = [
{_id:'1',
word:'test'
},
{_id:'2',
word:'test2'
},
{_id:'3',
word:'test3'
},
{_id:'4',
word:'test4'
}
];
let arrs = [];
for (var i = 0; i < items.length; i++){
var obj = {
[items[i]._id] : items[i].word
}
arrs.push(obj);
}
console.log(arrs)