Javascript 将两个数组分组
我有一个数组“animalTypes”Javascript 将两个数组分组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个数组“animalTypes”[dog,dog,cat,cat],它的内容会动态变化(但总是以这种分组方式),同时还有另一个大小相同的数组,[K9,hound,波斯语,暹罗语,sphinx],它是在相同的输入上获得的,但在属性“brides”中,并且总是与“动物类型” 所以我得到了这些var容器 var animal = {}; animal["type"] = []; 我如何迭代数组,以便我们以这种方式填充animal[“type”]: { type : dog
[dog,dog,cat,cat]
,它的内容会动态变化(但总是以这种分组方式),同时还有另一个大小相同的数组,[K9,hound,波斯语,暹罗语,sphinx]
,它是在相同的输入上获得的,但在属性“brides”中,并且总是与“动物类型”
所以我得到了这些var容器
var animal = {};
animal["type"] = [];
我如何迭代数组,以便我们以这种方式填充animal[“type”]:
{
type : dog
breeds : K9, hound
},
{
type : cat
breeds : persian, siamese, sphinx
}`
到目前为止,我已经成功地迭代了这两个数组,但是我需要按照上面的方法进行分组
var animalTypesChecked = $('input[name="animalTypes"]:checked');
var animalTypesCheckedContainer = [];
$.each(animalTypesChecked, function(index,value){
animalTypesCheckedContainer.push($(this).val());
});
var animalBreedsOfChecked = $('input[name="animalTypes"]:checked');
var animalBreedsOfCheckedcontainer = [];
$.each(animalBreedsOfChecked, function(){
animalBreedsOfCheckedcontainer.push($(this).eq($(this).index()).attr('breeds'));
});
这就是我正在做的:
for(){
animal.type.push({
type : <animalType here>,
breeds : <animal breed here>
});
}
(){
动物型推力器({
类型:,
品种:
});
}
您可以在遍历复选框时构建所需的对象:
$(“按钮”)。单击(函数(){
//首先创建由类型设置关键帧的对象,这些类型将数组作为值
var breedsByType={};
$('input[name=“animalTypes”]:选中')。每个(函数(){
var type=$(this.val();
BreedByType[类型]=BreedByType[类型]| |[];
breedsByType[type].push($(this.attr('brides'));
});
//将该对象转换为对象数组:
var结果=$.map(繁殖类型,函数(品种,类型){
返回{
类型:类型,
品种:品种
};
});
控制台日志(结果);
});
狗-K9
猎狗
猫-波斯语
猫-暹罗猫
猫狮身人面像
转到
您可以在遍历复选框时构建所需的对象:
$(“按钮”)。单击(函数(){
//首先创建由类型设置关键帧的对象,这些类型将数组作为值
var breedsByType={};
$('input[name=“animalTypes”]:选中')。每个(函数(){
var type=$(this.val();
BreedByType[类型]=BreedByType[类型]| |[];
breedsByType[type].push($(this.attr('brides'));
});
//将该对象转换为对象数组:
var结果=$.map(繁殖类型,函数(品种,类型){
返回{
类型:类型,
品种:品种
};
});
控制台日志(结果);
});
狗-K9
猎狗
猫-波斯语
猫-暹罗猫
猫狮身人面像
Go
请显示相关HTML。$(this).eq($(this).index())
没有多大意义。请显示相关HTML。$(this).eq($(this).index())
没有多大意义。