我需要从两个已经存在的数组中创建一个新数组。我需要创建的数组将从每个现有数组中获取一个值,并相应地匹配它们。
阵列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();