jQuery:将变量推送到数组中的数组
我在$each中工作,希望用每个项的变量填充一个数组 大小和颜色由从选择框中抓取的字段决定,其值沿L-Black large&Black行jQuery:将变量推送到数组中的数组,jquery,arrays,multidimensional-array,Jquery,Arrays,Multidimensional Array,我在$each中工作,希望用每个项的变量填充一个数组 大小和颜色由从选择框中抓取的字段决定,其值沿L-Black large&Black行 var options = []; var sizes = []; $(this).find('option').each( function(){ var value = $(this).text().split('-'); var size = value[0].replace("Size ", ""); var color =
var options = [];
var sizes = [];
$(this).find('option').each( function(){
var value = $(this).text().split('-');
var size = value[0].replace("Size ", "");
var color = value[1];
if ($.inArray(size, sizes) == -1) {
sizes.push(size);
}
options.push({s:size, c:color});
});
var po = [];
$.each(options, function(i,v){
var index = $.inArray(v.s, sizes);
if (po[index] instanceof Array) {
po[index].push({colors:[v.c]});
}else{
po[index] = [];
po[index].push({size:v.s, colors:[v.c]});
}
});
console.log(po);
这种方式奏效了,它吐出了这个
Array[2]
0: Object
colors: Array[1]
0: "Black"
size: "L"
1: Object
colors: Array[1]
0: "White"
我希望它能吐出像这样的东西
Array[2]
0: "L"
colors: Array[2]
0: "Black"
1: "White"
1: "M"
colors: Array[2]
0: "Black"
2: "White"
1: "Blue"
所以我可以拿着它,每个做一美元,并允许一个大的:黑色,白色
我被难住了,已经为此工作了几个小时,我无法理解它,任何帮助都将不胜感激。我使用了更紧凑的代码版本,但它可能不正确。看看这是否对您有帮助:
var opts = [];
$("#form").find('option').each( function(){
var value = $(this).text().split('-');
var size = value[0].replace("Size ", "").replace(" ","");
var color = value[1];
if (typeof opts[size]=="undefined") {
opts[size] = [];
}
opts[size].push(color);
});