如何从2个现有阵列创建一个新阵列



我需要从两个已经存在的数组中创建一个新数组。我需要创建的数组将从每个现有数组中获取一个值,并相应地匹配它们。

阵列1示例:

0: "110235"
1: "110236"
2: "345272663"
3: "345269790"
4: "110533"

阵列2示例:

0: true
1: true
2: false
3: true
4: false

所需的新阵列:

0: value1: "110235", value2: true
1: value1: "110236", value2: true
2: value1: "345272663", value2: false
3: value1: "345269790", value2: true
4: value1: "110533", value2: false

以下是我当前用于生成两个现有数组的代码。

$(".save-button").click(function(event){
event.preventDefault();
var inputValue = $(".checkbox-input").map(function(){
return $(this).prop( "checked" )
}).get(); 
var subscriptionId = $(".checkbox-input").map(function(){
return $(this).closest('.subscription').attr('data-subscription-id');
}).get();
});

以下假设两个组成数组的长度相同。

var array1 = ["110235", ...];
var array2 = [true, ...];
var targetArray = [];
for (var i = 0; i < array1.length; i++) {
targetArray.push({value1: array1[i], value2: array2[i]});
}

如果它们的长度不相同,那么这取决于您希望如何处理无法与其他数组匹配的值。您可以将targetArray限制为组成数组的最小长度,也可以在数组太短时假设为null。

您只需要一个$(".checkbox-input").map,然后只需在单个映射中完成价值构建的两个部分。

var desiredNewArray = $(".checkbox-input").map(function() {
return {
value1: $(this).closest('.subscription').attr('data-subscription-id'), 
value2: $(this).prop("checked")
}
}).get();

最新更新