假设我有arr1
和arr2
设置,如下所示。
var arr1 = [
{
items: ['1','2','3']
},
{
items: ['4','5','6']
},
{
items: [] // empty array
},
...
]
var arr2 = [
['A', 'B', 'C'],
['D', 'E', 'F'],
['X', 'Y', 'Z'],
...
]
我想要做的是items
中有一个空的arr1
数组:
filtered_arr
,其中只包含具有非空items
数组的对象。arr1[2]
点)并过滤掉arr2
中的相应位置 - 意味着删除arr2[2]
数组任何帮助?
答案 0 :(得分:4)
您可以使用本机JS数组filter
方法按指定标准过滤arr1
中的值(在这种情况下 - 值是否包含空白数组)。如果您的条件匹配,您可以使用splice
方法随后从arr2
删除相应索引处的项目。
此实现如下:
var filtered_arr = arr1.filter(function(val, idx) {
if (val['items'].length == 0) {
arr2.splice(idx, 1);
return false;
}
return true;
});
答案 1 :(得分:1)
尝试类似
的内容
var arr1 = [{
items: ['1', '2', '3']
}, {
items: ['4', '5', '6']
}, {
items: [] // empty array
}, {
items: ['7', '8', '9']
}, {
items: ['10', '11', '12']
}]
var arr2 = [
['A', 'B', 'C'],
['D', 'E', 'F'],
['G', 'H', 'I'],
['J', 'K', 'L'],
['X', 'Y', 'Z']
]
var filtered_arr = [];
arr1.forEach(function(val, idx){
if(val.items.length){
filtered_arr.push(val);
}else{
arr2.splice(idx, 1)
}
});
$('#filtered_arr').text(JSON.stringify(filtered_arr));
$('#arr2').text(JSON.stringify(arr2));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Filtered Array: <span id="filtered_arr"></span><br />
Array 2: <span id="arr2"></span><br />