gpt4 book ai didi

javascript - Underscore.js 在嵌套数组中查找并返回元素

转载 作者:搜寻专家 更新时间:2023-11-01 04:44:56 24 4
gpt4 key购买 nike

我有这样的数据结构:

[
{
"name": "AAAA",
"children": [
{"name": "vvv", "id": 3},
{"name": "vvv22", "id": 4}
]
},
{
"name": "BBBB",
"children": [
{"name": "ggg", "id": 5},
{"name": "ggggv22", "id": 6}
]
},
]

我想找到并返回具有给定 ID 的 child 。如何使用 Underscore.js 实现这一点?

我目前不使用 Underscore 的实现:

for (var i = 0; i < data.length; i++) {
var dataItem= data[i];
for (var j = 0; j < dataItem.children.length; j++) {
var child = dataItem.children[j];
if (child .id == id) {
return child;
}
}
}

最佳答案

  1. Pluck顶级对象中的 children
  2. Flatten结果数组
  3. Find the first object匹配条件,例如具有正确的 id
  4. Chain这些操作

导致

var res = _(data).chain().
pluck('children').
flatten().
findWhere({id: 3}).
value();

还有一个演示

var data = [
{
"name": "AAAA",
"children": [
{"name": "vvv", "id": 3},
{"name": "vvv22", "id": 4}
]
},
{
"name": "BBBB",
"children": [
{"name": "ggg", "id": 5},
{"name": "ggggv22", "id": 6}
]
}
];
var res = _(data).chain().
pluck('children').
flatten().
findWhere({id: 3}).
value();

console.log(res);
<script src="http://underscorejs.org/underscore-min.js"></script>

关于javascript - Underscore.js 在嵌套数组中查找并返回元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24756779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com