我有这个例子:
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
将变为五个名称
我想创建一个多维数组或一个看起来像这样的对象:
[1:name1] for the first iteration
[2:name2] for the second on
...
将每对值传递给myFunction
函数
并且在该函数内部可以访问数组值:
function myFunction(array){ //提醒关键和价值 }
任何想法如何实现这种情况?
答案 0 :(得分:5)
目前尚不清楚您要尝试做什么,但如果您希望array
中的每个条目都是包含ID和名称值的数组,则可以更改此行:
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);
}
}
使用像这样的普通对象,没有必要,但如果你循环的对象可能有一个原型,你只想查看对象的自己的属性:< / p>
function myFunction(data) {
var id, name;
for (id in data) {
if (data.hasOwnProperty(id)) {
name = data[id];
alert("id is " + id + ", name is " + name);
}
}
}