Underscore.js 使用嵌套数组查找并 return 元素
Underscore.js Find and return element using nested array
我有这样的数据结构
var masterObj = [{
"_id" : "2i4NGzpEpnKZhkxY8",
"master_sku" : "UAT43-S",
"available" : [
{
"marketplace_name" : "xyx",
"doc_id" : "WCw8Hsyw4D3ab8TAZ"
}
]
}
{
"_id" : "2mf6hghQ7f32CrA3X",
"master_sku" : "UAT43-XL",
"available" : [
{
"marketplace_name" : "abc",
"doc_id" : "QduDKpT2HqmuaFHRz",
}
]
}]
我正在使用 underscor.js 我的查询是这样的
var result = _.findWhere(masterObj, { "available.doc_id": "WCw8Hsyw4D3ab8TAZ" });
要求的结果是
{
"_id" : "2i4NGzpEpnKZhkxY8",
"master_sku" : "UAT43-S",
"available" : [
{
"marketplace_name" : "xyx",
"doc_id" : "WCw8Hsyw4D3ab8TAZ"
}
]
}
如何获得所需的输出。提前致谢。
你不需要下划线。使用 JavaScript 的原生 find
数组方法和回调函数来查找具有正确 doc_id
.
的元素 available
数组
如果你知道available
只有一个元素:
const arr = [{"_id":"2i4NGzpEpnKZhkxY8","master_sku":"UAT43-S","available":[{"marketplace_name":"xyx","doc_id":"WCw8Hsyw4D3ab8TAZ"}]},{"_id":"2mf6hghQ7f32CrA3X","master_sku":"UAT43-XL","available":[{"marketplace_name":"abc","doc_id":"QduDKpT2HqmuaFHRz"}]}]
const result = arr.find(obj => {
return obj.available[0].doc_id === 'WCw8Hsyw4D3ab8TAZ';
});
console.log(result);
如果 available
有多个元素使用 some
:
const arr = [{"_id":"2i4NGzpEpnKZhkxY8","master_sku":"UAT43-S","available":[{"marketplace_name":"xyx","doc_id":"WCw8Hsyw4D3ab8TAZ"},{"marketplace_name":"bob","doc_id":"WCw8Hsyw4D3a8TAZ"}]},{"_id":"2mf6hghQ7f32CrA3X","master_sku":"UAT43-XL","available":[{"marketplace_name":"abc","doc_id":"QduDKpT2HqmuaFHRz"}]}]
const result = arr.find(obj => {
return obj.available.some(el => el.doc_id === 'WCw8Hsyw4D3ab8TAZ');
});
console.log(result);
我有这样的数据结构
var masterObj = [{
"_id" : "2i4NGzpEpnKZhkxY8",
"master_sku" : "UAT43-S",
"available" : [
{
"marketplace_name" : "xyx",
"doc_id" : "WCw8Hsyw4D3ab8TAZ"
}
]
}
{
"_id" : "2mf6hghQ7f32CrA3X",
"master_sku" : "UAT43-XL",
"available" : [
{
"marketplace_name" : "abc",
"doc_id" : "QduDKpT2HqmuaFHRz",
}
]
}]
我正在使用 underscor.js 我的查询是这样的
var result = _.findWhere(masterObj, { "available.doc_id": "WCw8Hsyw4D3ab8TAZ" });
要求的结果是
{
"_id" : "2i4NGzpEpnKZhkxY8",
"master_sku" : "UAT43-S",
"available" : [
{
"marketplace_name" : "xyx",
"doc_id" : "WCw8Hsyw4D3ab8TAZ"
}
]
}
如何获得所需的输出。提前致谢。
你不需要下划线。使用 JavaScript 的原生 find
数组方法和回调函数来查找具有正确 doc_id
.
available
数组
如果你知道available
只有一个元素:
const arr = [{"_id":"2i4NGzpEpnKZhkxY8","master_sku":"UAT43-S","available":[{"marketplace_name":"xyx","doc_id":"WCw8Hsyw4D3ab8TAZ"}]},{"_id":"2mf6hghQ7f32CrA3X","master_sku":"UAT43-XL","available":[{"marketplace_name":"abc","doc_id":"QduDKpT2HqmuaFHRz"}]}]
const result = arr.find(obj => {
return obj.available[0].doc_id === 'WCw8Hsyw4D3ab8TAZ';
});
console.log(result);
如果 available
有多个元素使用 some
:
const arr = [{"_id":"2i4NGzpEpnKZhkxY8","master_sku":"UAT43-S","available":[{"marketplace_name":"xyx","doc_id":"WCw8Hsyw4D3ab8TAZ"},{"marketplace_name":"bob","doc_id":"WCw8Hsyw4D3a8TAZ"}]},{"_id":"2mf6hghQ7f32CrA3X","master_sku":"UAT43-XL","available":[{"marketplace_name":"abc","doc_id":"QduDKpT2HqmuaFHRz"}]}]
const result = arr.find(obj => {
return obj.available.some(el => el.doc_id === 'WCw8Hsyw4D3ab8TAZ');
});
console.log(result);