繁体   English   中英

Javascript中的嵌套多维数组

[英]Nested Multidimension Array in Javascript

给出以下代码:

<script type="text/javascript">
    var arr = [];
    var names = [{name : 'George'}, {name : 'Ringo'}, {name : 'Paul'}, {name : 'John'}];
    var surnames = [{surname : 'Harrison'}, {surname : 'Starr'}, {surname : 'McCartney'}, {surname : 'Lennon'}];

    for (i = 0; i < names.length; i++) {
            arr['firstname'] = names[i];
        for (j = 0; j < surnames.length; j++) {
            arr['firstname']['surname'] = surnames[j];
            arr['firstname']['surname']['index'] = i;
            console.log(arr);
        }
    }
</script>

运行时,内部循环中的输出将仅在所有条目上显示姓氏array(Lennon)和i(3)的最后一个值。 我要实现的输出是每个姓名的姓氏将分配给所有名字(例如John Harrison,John Starr等),并且index(i)将从0递增到3。谢谢。

你想要这样的东西吗?

 var arr = []; var names = [{ name: 'George' }, { name: 'Ringo' }, { name: 'Paul' }, { name: 'John' }]; var surnames = [{ surname: 'Harrison' }, { surname: 'Starr' }, { surname: 'McCartney' }, { surname: 'Lennon' }]; for (i = 0; i < names.length; i++) { arr.push({ index: i, firstname: names[i].name, surname: surnames[i].surname }); } console.log(arr); 

这样尝试,

for (i = 0; i < names.length; i++) {
       var obj = new Object;
        obj['name'] = names[i];
        obj['name']['surname'] = surnames[i].surname;
        obj['index'] = i;
        arr.push(obj);

}
   console.log(arr);

看起来您想要所有姓氏的直角乘积。

尝试这个

  var arr = []; var names = [{ name: 'George' }, { name: 'Ringo' }, { name: 'Paul' }, { name: 'John' }]; var surnames = [{ surname: 'Harrison' }, { surname: 'Starr' }, { surname: 'McCartney' }, { surname: 'Lennon' }]; for (i = 0; i < names.length; i++) { for (j = 0; j < surnames.length; j++) { var tmpObj = JSON.parse(JSON.stringify(names[i])); tmpObj['surname'] = surnames[j].surname; tmpObj['index'] = i; arr.push(tmpObj); } } console.log(arr); 

另外,您也可以

Object.create(names[i]) 

代替

JSON.parse(JSON.stringify(names[i]));

暂无
暂无

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

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