繁体   English   中英

Javascript / Node-使用for循环将对象插入数组

[英]Javascript/Node - Insertion of objects into array using for loop

我需要有关将数组元素作为对象插入Javascript中另一个数组的帮助。 我有以下代码:

tableLength = 3;
nyCourt = [];
oldArr = [Buy, String, Question]

for (var t = 0; t < tableLength; t++) {
    nyCourt.push({});
        for (var i = 0; i < OldArr.length; i++) {
             nyCourt.Title = OldArr[i] ;
        }
};

代码不起作用,我想以以下格式输出

[{Title:Buy },
{Title: String},
{Title: Question}]

但是我得到的输出是这样的:

[{Title:Question },
{Title: Question},
{Title: Question}]

这行:

nyCourt.Title = OldArr[i] 

在循环中重复写入nyCourt对象(这是一个数组对象)上的Title属性。 最后一个任务获胜。

但是,鉴于您所说的那样,您的输出将变得过于复杂。 您只需要一个循环:

var nyCourt = [];
var oldArr = [Buy, String, Question];

for (var i = 0; i < oldArr.length; i++) {
    nyCourt.push({Title: oldArr[i] });
}

现场示例 (使用Chrome或其他现代工具)| 资源

或者因为这是Node,所以我们知道我们有map

var oldArr = [Buy, String, Question];
var nyCourt = oldArr.map(function(entry) {
    return {Title: entry};
});

现场示例 | 资源

//this give the output you want
    tableLength = 3;
    nyCourt = [];
    oldArr = ['Buy', 'String', 'Question'];

    for (var t = 0; t < oldArr.length; t++) {
        nyCourt.push({Title: oldArr[t]});
    };

    console.log(nyCourt);

将push函数放置在循环中也会像这样更改代码

for (var t = 0; t < tableLength; t++) {    
            for (var i = 0; i < OldArr.length; i++) {
                 nyCourt.push({"Title": oldArr[t]});
            }
    };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM