如何动态创建对象 属性 并使用 for 循环赋值
How to dynamically create an object property & assign values using a for loop
请教我如何在给定场景中正确地为对象属性赋值:
我正在获取文本区域的值,并在新行中拆分该值。我需要将这些拆分值分配给数组中对象的 属性。见以下代码:
var items = [{}];
function process() {
var i = 0;
items.forEach((j) => {
j.self = document.getElementById('input').value.split('\n');
});
单击按钮时调用 process()。
在控制台中,我得到以下信息:
我需要将一个值分配给 key[0] 作为 self 属性 的值,而不是 key[0] 作为数组的 10 个 self 值。第二个拆分需要分配给 key1.self 例如.
预期输出如下(如果不完全准确,请见谅):
items[0]{self: split-string[0]},
items[1]{self: split-string[1]},
items[2]{self: split-string[2]},
等等...
而不是(控制台中显示的内容):
items[0].self[0] = split-string[0];
items[0].self[1] = split-string[1];
items[0].self[2] = split-string[2];
如果说得通,请有人帮忙。
目前还不清楚你到底想得到什么,但如果我理解正确的话,它是一个对象数组,其中 属性 self
包含来自输入的一行。
如果这个假设是正确的,这应该有效:
document.getElementById("clickme").addEventListener("click",process);
function process(){
const items = document.getElementById("input").value
.split("\n")
.map(line => ({self:line}));
console.log(items);
}
<textarea id="input" rows="5">Line1
Line2
Line3
Line4</textarea>
<button id="clickme">Process</button>
请教我如何在给定场景中正确地为对象属性赋值:
我正在获取文本区域的值,并在新行中拆分该值。我需要将这些拆分值分配给数组中对象的 属性。见以下代码:
var items = [{}];
function process() {
var i = 0;
items.forEach((j) => {
j.self = document.getElementById('input').value.split('\n');
});
单击按钮时调用 process()。
在控制台中,我得到以下信息:
我需要将一个值分配给 key[0] 作为 self 属性 的值,而不是 key[0] 作为数组的 10 个 self 值。第二个拆分需要分配给 key1.self 例如.
预期输出如下(如果不完全准确,请见谅):
items[0]{self: split-string[0]},
items[1]{self: split-string[1]},
items[2]{self: split-string[2]},
等等...
而不是(控制台中显示的内容):
items[0].self[0] = split-string[0];
items[0].self[1] = split-string[1];
items[0].self[2] = split-string[2];
如果说得通,请有人帮忙。
目前还不清楚你到底想得到什么,但如果我理解正确的话,它是一个对象数组,其中 属性 self
包含来自输入的一行。
如果这个假设是正确的,这应该有效:
document.getElementById("clickme").addEventListener("click",process);
function process(){
const items = document.getElementById("input").value
.split("\n")
.map(line => ({self:line}));
console.log(items);
}
<textarea id="input" rows="5">Line1
Line2
Line3
Line4</textarea>
<button id="clickme">Process</button>