javascript - 过滤空数组

标签 javascript jquery

假设我的 arr1arr2 设置如下。

var arr1 = [
    {
      items: ['1','2','3']
    },

    {
      items: ['4','5','6']
    },

    {
      items: [] // empty array
    },

    ...
]

var arr2 = [
    ['A', 'B', 'C'],
    ['D', 'E', 'F'],
    ['X', 'Y', 'Z'],
    ...
]

我想做的是,如果arr1中有一个空的items数组,则:

  1. 创建一个新的 filtered_arr,其中仅包含具有非空 items 数组的对象。
  2. 找出该数组的索引(在上面的示例中,空数组出现在arr1[2]位置)并过滤出arr2中的相应位置- 意思是删除arr2[2]数组

有什么帮助吗?

最佳答案

可以使用原生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;
});

jsFiddle Demo

关于javascript - 过滤空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25903596/

相关文章:

javascript - ComboBox.store.loadData 无法加载单项数组

javascript - 如何使用 javascript、jquery 或 css 为模态调整大小设置动画?

jquery - Dojo 相当于 jQuery $ ('html' )

android - 在 Bootstrap 响应式 View 中只有图片链接的一 Angular 是可点击的

php - 客户端验证错误不会阻止提交和 ajax 请求

javascript - Unca无法将属性 'innerHTML' 设置为 null

javascript - 如何将超链接添加到通过 Leaflet.Draw 创建的 Leaflet 折线?

javascript - 鼠标移动指针事件无 div

javascript - 当我尝试从 Ajax 发送 POST 时 PHP 未定义索引数据

javascript - 如何等待$.getJSON()?