gpt4 book ai didi

javascript - 使用对象属性作为 "delimiter"的对象数组 block

转载 作者:行者123 更新时间:2023-11-29 10:34:24 24 4
gpt4 key购买 nike

给定以下数组:

var arr = [{id:1 , code:0},
{id:1 , code:12},
{id:1 , code:0},
{id:1 , code:0},
{id:1 , code:5}];

如何使用 lodash,每次 code 不等于 0 时拆分数组并得到以下结果?

[
[{id:1 , code:0},{id:1 , code:12}],
[{id:1 , code:0},{id:1 , code:0},{id:1 , code:5}]
]

最佳答案

为此,您可以使用 Array.prototype.reduce(或 lodash 的 _.reduce()):

var arr = [{id:1 , code:0},
{id:1 , code:12},
{id:1 , code:0},
{id:1 , code:0},
{id:1 , code:5}];

var result = arr.reduce(function(result, item, index, arr) {
index || result.push([]); // if 1st item add sub array

result[result.length - 1].push(item); // add current item to last sub array

item.code !== 0 && index < arr.length - 1 && result.push([]); // if the current item code is not 0, and it's not the last item in the original array, add another sub array

return result;
}, []);

console.log(result);

关于javascript - 使用对象属性作为 "delimiter"的对象数组 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39226401/

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