gpt4 book ai didi

javascript - 如何使用 _.where 通过 ID 查找嵌套在对象数组中的对象?

转载 作者:行者123 更新时间:2023-12-03 08:13:48 25 4
gpt4 key购买 nike

这是 JSON:

tree.json:

[
{
"objectId": "o3mH2lo8wO",
"name": "Coeptis",
"thumbnailUrl": "https://storage.googleapis.com/bundle_asia_dra/portal/buildingImg/Coeptis.png",
"createdAt": "2015-06-29T08:16:51.897Z",
"version": 0,
"pano": []
},
{
"objectId": "ueCCX8v4Qz",
"name": "Sunflower",
"thumbnailUrl": "https://storage.googleapis.com/bundle_asia_dra/portal/buildingButton/caisa.png",
"createdAt": "2015-08-25T12:11:02.235Z",
"version": 0,
"space": "56-139",
"pano": [
{
"objectId": "TIdm6sG1r0",
"name": "D0",
"panoData": [

我知道如何获取第一个对象(例如 "objectId": "ueCCX8v4Qz" ):

 _.where(tree, {"objectId": "ueCCX8v4Qz"})

但我不知道如何获取,例如"objectId": "TIdm6sG1r0" ( pano: 内数组内的对象)。

如何实现这一目标?

最佳答案

可以使用reduce和where的组合来遍历父元素并对指定的属性执行where。类似的东西

var tree = [{
"objectId": "o3mH2lo8wO",
"name": "Coeptis",
"thumbnailUrl": "https://storage.googleapis.com/bundle_asia_dra/portal/buildingImg/Coeptis.png",
"createdAt": "2015-06-29T08:16:51.897Z",
"version": 0,
"pano": []
}, {
"objectId": "ueCCX8v4Qz",
"name": "Sunflower",
"thumbnailUrl": "https://storage.googleapis.com/bundle_asia_dra/portal/buildingButton/caisa.png",
"createdAt": "2015-08-25T12:11:02.235Z",
"version": 0,
"space": "56-139",
"pano": [{
"objectId": "TIdm6sG1r0",
"name": "D0",
"panoData": []
}]
}];


// register new function to be run on underscore
_.mixin({
'nestedWhere': function(parent, childTarget, searchOptions) {

// reduce the parent with an intial state set to an empty array that we push a parent
// to if a child where clause is matched
return _.reduce(parent, function(memo, parentElement) {
if (_.where(parentElement[childTarget], searchOptions).length > 0) {
memo.push(parentElement);
}
return memo;
}, []);
}
});


var data = _.nestedWhere(tree, "pano", {
"objectId": "TIdm6sG1r0"
});

console.log(data)
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

关于javascript - 如何使用 _.where 通过 ID 查找嵌套在对象数组中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34039540/

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