![](/img/trans.png)
[英]How to create a multi dimensional object or array in javascript or jquery
[英]how to create a multi dimensional array in javascript inside a jquery each loop?
我有这个例子:
var name;
var id;
var array = [];
$.each(data, function(index, element) {
name = element.name;
id = element.id;
array[id] = name;
<a href="#" onClick="myFunction(array)">send</a>
console.log(array);
});
在这种情况下, .each
将迭代5次,并且id
将变为1, 2, 3, 4, 5
并且name
将更改为5个名称
我想创建一个多维数组或一个看起来像这样的对象:
[1:name1] for the first iteration
[2:name2] for the second on
...
将每对值传递给myFunction
函数,并在该函数内部传递对数组值的访问权限:
函数myFunction(array){//提示键和值}
有什么想法可以完成这种情况吗?
目前尚不清楚您要做什么,但是如果您希望array
每个条目都是一个包含id和name值的数组,则可以更改此行:
array[id] = name;
至
array[id] = new Array(id, name);
但是我可能不会为此使用数组,我可能只会使用一个对象:
array[id] = {id: id, name: name};
然后您可以像这样访问它:
x = array[id].name;
实际上, array
真的需要成为数组吗? 如果没有,只需使其成为对象:
data = {};
以id
为键,并name
为值:
data[id] = name;
这是循环的方式:
function myFunction(data) {
var id, name;
for (id in data) {
name = data[id];
alert("id is " + id + ", name is " + name);
}
}
有了这样的普通对象,就没有必要了,但是如果要循环的对象后面可能有原型,则只想看一下对象自己的属性即可:
function myFunction(data) {
var id, name;
for (id in data) {
if (data.hasOwnProperty(id)) {
name = data[id];
alert("id is " + id + ", name is " + name);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.