JavaScript:如何从多维数组中获取值?

7
我正在尝试从一个多维数组中获取值。目前为止,我有以下内容。
当我选择数组中的第一个选项,例如“Billy Joel”时,我需要得到99和图像的值。
var concertArray = [
    ["Billy Joel", "99", "equal.png"],
    ["Bryan Adams", "89", "higher.png"],
    ["Brian Adams", "25", "lower.png"]
];

function populate(){
    for(i = 0; i < concertArray.length; i++){
        var select = document.getElementById("test");
        select.options[select.options.length] = new Option(concertArray[i][0], concertArray[i][1]);
    }
}
4个回答

17
您可以尝试将多维数组转换为对象数组,方法如下:
var concertArray = [
    {name: "Billy Joel", value: 99, image: "equal.png"},
    {name: "Bryan Adams", value: 89, image: "higher.png"},
    {name: "Brian Adams", value: 25, image: "lower.png"}
];

然后您可以像访问常规对象一样访问数组中的项目:

var concertName = concertArray[0].name;
var concertPrice = parseFloat(concertArray[0].value);
var concertImage = concertArray[0].image;

如何迭代这种类型的数组? - aspiring

6

let concertArray = [
    ["Billy Joel", "99", "equal.png"],
    ["Bryan Adams", "89", "higher.png"],
    ["Brian Adams", "25", "lower.png"]
];

let i = 0;

console.log(concertArray[i][1]) // 99
console.log(concertArray[i][2]) // equal.png


非常感谢...现在,我需要做什么才能完成这个结构中的concertImage:concertName = concertList.options[concertIndex].text; concertPrice = parseFloat(concertList.options[concertIndex].value); concertImage = ??? - kentrenholm

0

您可以使用以下两个for循环来访问值。

var concertArray = [
    ["Billy Joel", "99", "equal.png"],
    ["Bryan Adams", "89", "higher.png"],
    ["Brian Adams", "25", "lower.png"]
    ];

function populate(){
    for(i=0;i<arr.length;i++)
    {
        for(j=0;j<arr[i].length;j++)
        {
             console.log(arr[i][j]);
        }
    }
}

1
这个答案对于大数组来说非常糟糕。 - Kir Mazur

0
据我所知,Option 构造函数只接受两个参数,即文本和 value。如果您想传递更多数据,建议使用 HTML5 数据 API:
var opt = new Option(concertArray[i][0], concertArray[i][1]);
opt.setAttribute('data-image', concertArray[i][2]);
select.options[select.options.length] = opt;

然后您可以使用getAttribute('data-image')来获取它


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接