繁体   English   中英

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

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

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