I'm trying to get the values from a multi-dimensional array. This is what I have so far.
I need the value of 99 and the image when I select the first option in the array, e.g. "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 个解决方案
#1
15
You can try to transform the multi-dimensional array to an array of objects like this:
您可以尝试将多维数组转换为对象数组,如下所示:
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"}
];
Then you can access the items in the array like regular objects:
然后,您可以像常规对象一样访问数组中的项:
var concertName = concertArray[0].name;
var concertPrice = parseFloat(concertArray[0].value);
var concertImage = concertArray[0].image;
#2
6
99 => concertArray[i][1]
image => concertArray[i][2]
99 => concertArray [i] [1] image => concertArray [i] [2]
#3
0
AFAIK, the Option
constructor only takes two arguments, the text and the value
. If you want to pass more data, I suggest you use the HTML5 data API:
AFAIK,Option构造函数只接受两个参数,即文本和值。如果您想传递更多数据,我建议您使用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;
Then you can grab it using getAttribute('data-image')
然后你可以使用getAttribute('data-image')抓住它
#4
0
You can access values by using 2 for loops as below.
您可以使用2 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
15
You can try to transform the multi-dimensional array to an array of objects like this:
您可以尝试将多维数组转换为对象数组,如下所示:
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"}
];
Then you can access the items in the array like regular objects:
然后,您可以像常规对象一样访问数组中的项:
var concertName = concertArray[0].name;
var concertPrice = parseFloat(concertArray[0].value);
var concertImage = concertArray[0].image;
#2
6
99 => concertArray[i][1]
image => concertArray[i][2]
99 => concertArray [i] [1] image => concertArray [i] [2]
#3
0
AFAIK, the Option
constructor only takes two arguments, the text and the value
. If you want to pass more data, I suggest you use the HTML5 data API:
AFAIK,Option构造函数只接受两个参数,即文本和值。如果您想传递更多数据,我建议您使用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;
Then you can grab it using getAttribute('data-image')
然后你可以使用getAttribute('data-image')抓住它
#4
0
You can access values by using 2 for loops as below.
您可以使用2 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]);
}
}
}