微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 for 循环动态创建对象属性并分配值

如何解决如何使用 for 循环动态创建对象属性并分配值

请有人教我如何在给定的场景中正确地为对象属性赋值:

我正在获取文本区域的值,在新行拆分该值。我需要将这些拆分值分配给数组中对象的属性。见下面的代码

var items = [{}];

function process() {
    var i = 0;
    items.forEach((j) => {
        j.self = document.getElementById('input').value.split('\n');
    });

process() 在按钮被点击时被调用

在控制台中,我得到以下信息:

enter image description here

例如将 10 个 self 值作为数组而不是 key[0],我需要将单个值分配给 key[0] 作为 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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。