javascript - 从对象数组中的数组返回唯一的数组值

标签 javascript

我找不到类似的问题,我有点卡住了。我有以下 JSON 数组:

[
    {
        "Name": "element1",
        "Attributes": ["1", "2"]
    },

    {
        "Name": "element2",
        "Attributes": ["1","3" ]
    },
    {
        "Name": "element3",
        "Attributes": []
    }
]

我试图在“Attributes”属性中创建一个包含所有唯一元素的数组,但我无法循环遍历每个对象,然后循环遍历数组元素以返回唯一值。我正在尝试使用 filter() 或 map() 来实现。

编辑:我想要一组独特的元素,所以:[1,2,3]。

最佳答案

您可以使用几个 Array 方法来完成。例如:

var result = [
    {
        "Name": "element1",
        "Attributes": ["1", "2"]
    },

    {
        "Name": "element2",
        "Attributes": ["1","3" ]
    },
    {
        "Name": "element3",
        "Attributes": []
    }
]

// map to [ ["1", "2"], ["1", "3"], [] ]
.map(item => item.Attributes)

// flatten to [ "1", "2", "1", "3" ]
.reduce((prev, curr) => prev.concat(curr), [])

// filter unique [ "1", "2", "3" ]
.filter((item, i, arr) => arr.indexOf(item) === i)

console.log(result)

关于javascript - 从对象数组中的数组返回唯一的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38158675/

相关文章:

javascript - Bootstrap 3 日期范围选择形式

javascript - 如何在 JavaScript 中构造对象

javascript - Sequelize::findAll 不是函数

javascript - 验证检查后执行验证中间件

javascript - node.js:setInterval() 跳过调用

javascript - 根据搜索字符串结果切换模型

javascript - 在 Typescript 中导入 Chai

javascript - hasClass 和动态类

javascript - iOS "Open in background"动画在 CSS/JS 中重新创建

javascript - 找出句子中的圆括号并筛选