如何在jquery每个循环内的javascript中创建一个多维数组?

Pat*_*cow 0 javascript arrays each jquery multidimensional-array

我有这个例子:

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);
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下.each将迭代5次,id将成为1, 2, 3, 4, 5name将变更为五个名字

我想创建一个多维数组或一个如下所示的对象:

[1:name1] for the first iteration
[2:name2] for the second on
...
Run Code Online (Sandbox Code Playgroud)

将每对值传递给myFunction函数,并在该函数内部访问数组值:

function myFunction(array){//提醒键和值}

任何想法我怎样才能完成这个场景?

T.J*_*der 5

目前还不清楚你要做什么,但如果你想让每个条目array成为一个包含id和name值的数组,你可以改变这一行:

array[id] = name;
Run Code Online (Sandbox Code Playgroud)

array[id] = new Array(id, name);
Run Code Online (Sandbox Code Playgroud)

但我可能不会使用数组,我可能只是使用一个对象:

array[id] = {id: id, name: name};
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样访问它:

x = array[id].name;
Run Code Online (Sandbox Code Playgroud)

事实上,array确实需要一个阵列吗?如果没有,只需将其作为一个对象:

data = {};
Run Code Online (Sandbox Code Playgroud)

制作id钥匙和name价值:

data[id] = name;
Run Code Online (Sandbox Code Playgroud)

这就是你循环它的方式:

function myFunction(data) {
    var id, name;

    for (id in data) {
        name = data[id];
        alert("id is " + id + ", name is " + name);
    }
}
Run Code Online (Sandbox Code Playgroud)

使用像这样的普通对象,没有必要,但是如果你正在循环的对象可能有一个原型,那么你只想查看对象自己的属性:

function myFunction(data) {
    var id, name;

    for (id in data) {
        if (data.hasOwnProperty(id)) {
            name = data[id];
            alert("id is " + id + ", name is " + name);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)