gpt4 book ai didi

javascript - 如何避免嵌套映射以从嵌套数组中获取我需要的值?

转载 作者:行者123 更新时间:2023-12-01 08:46:05 25 4
gpt4 key购买 nike

我正在做这样的事情来获得我需要的值:

   tableRowsItems = data.softy.map(row =>
row.items.map(item => console.log('item', item)),
);

这样,我得到了如下图所示的东西,这正是我所需要的

enter image description here

我的问题是这是否是正确的 ES6 方法。如果有帮助,我也在使用 lodash。

这是没有 map 的 json 文件的样子:

[
{
"ticketId": 67973802,
"account": null,
"items": [
{
"id": 11705294,
"billingItemId": 361643044,
"cancellationRequestId": 17289674,
"immediateCancellationFlag": true,
"scheduledCancellationDate": null,
"serviceReclaimStatusCode": "COMPLETE",
"billingItem": {
"description": "Storage as a Service",
"recurringFee": 0,
"id": 361643044
}
}
]
},
...
]
...

我需要的是你在 items 键上看到的内容

最佳答案

使用ES6,您可以轻松地通过Array.reduceitems 属性执行一行函数来帮助您展平嵌套数组。 :

var tickets = [{ "ticketId": 67973802, "account": null, "items": [{ "id": 117052912, "billingItemId": 36164304123, }, { "id": 11705232, "billingItemId": 361643044, }] }, { "ticketId": 67973802, "account": null, "items": [{ "id": 117052945, "billingItemId": 361643046, }, { "id": 117052953, "billingItemId": 361643049, }] } ];

const pullBy = (arr, prop) => arr.reduce((r,c) => [...r[prop], ...c[prop]])

console.log(pullBy(tickets, 'items'))

使用 lodash 最好的选择是flatMap :

var tickets = [{ "ticketId": 67973802, "account": null, "items": [{ "id": 117052912, "billingItemId": 36164304123, }, { "id": 11705232, "billingItemId": 361643044, }] }, { "ticketId": 67973802, "account": null, "items": [{ "id": 117052945, "billingItemId": 361643046, }, { "id": 117052953, "billingItemId": 361643049, }] } ];

const result = _.flatMap(tickets, 'items')

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>

关于javascript - 如何避免嵌套映射以从嵌套数组中获取我需要的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53510494/

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