[英]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.