0

我需要有关将数组元素作为对象插入 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}]
4

3 回答 3

1
//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);
于 2013-10-30T08:41:51.797 回答
1

这一行:

nyCourt.Title = OldArr[i] 

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

但是鉴于您所说的您希望输出的内容,您的代码过于复杂。你只需要一个循环:

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};
});

实例| 资源

于 2013-10-30T08:34:22.957 回答
0

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

for (var t = 0; t < tableLength; t++) {    
            for (var i = 0; i < OldArr.length; i++) {
                 nyCourt.push({"Title": oldArr[t]});
            }
    };
于 2013-10-30T08:50:59.520 回答