javascript - Underscore 有一些函数可以将嵌套的对象数组提取到新数组吗?

标签 javascript arrays underscore.js

我有:

[{
    "id": 1,
    "listForExtract": [{
        "value1": "1A",
        "value2": "2A"
    }, {
        "value1": "1B",
        "value2": "2B"
    }, ]
},
{
    "id": 2,
    "listForExtract": [{
        "value1": "1C",
        "value2": "2C"
    }, {
        "value1": "1D",
        "value2": "2D"
    }, ]
}]

我想将 listForExtract 中的对象提取到一个新数组,就像使用一些下划线传递 ID 的函数一样:

类似于:_.extractNestedArrayFrom(myArray, 'listForExtract', {'id':2})

[{
    "value1": "1A",
    "value2": "2A"
}, {
    "value1": "1B",
    "value2": "2B"
}]

最佳答案

您可以使用where , pluckflatten :

var result = _.chain(data)
    .where({id:2})
    .pluck('listForExtract')
    .flatten()
    .value()

Where 查找数组中 id 为 2 的所有项目,并 pluck 提取 listForExtract。然后使用 Flatten 将结果展平为一个数组

关于javascript - Underscore 有一些函数可以将嵌套的对象数组提取到新数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42091128/

相关文章:

php - 如何使用 PHP 实现 OWASP 规则 5 来缓解 XSS

javascript - 将根据值执行功能的函数。函数式编程

javascript - 在 JavaScript 中搜索数组映射的最有效方法

C 编程 - 加速数组操作

Javascript 数据模型,交叉引用

javascript - 排序方法及索引

javascript - 为什么 reactjs 中的 setState 是 Async 而不是 Sync?

javascript - 当我调用 d3.behavior.zoom 时,我的图形 range.domain() 变为空

c# - 排序数组,使所有正数首先出现

javascript - JS 日期数组如何按天分组