Javascript JS按对象字段拆分对象数组
我有一组令牌:Javascript JS按对象字段拆分对象数组,javascript,arrays,split,delimiter,Javascript,Arrays,Split,Delimiter,我有一组令牌: [ {type: 'name', value: 'foo'}, {type: 'string', value: 'bar'}, {type: 'special', value: ','}, {type: 'name', value: 'buzz'} ] 我想用等于,的值来拆分它们: [ [ {type: 'name', value: 'foo'}, {type: 'string', value: 'bar'
[
{type: 'name', value: 'foo'},
{type: 'string', value: 'bar'},
{type: 'special', value: ','},
{type: 'name', value: 'buzz'}
]
我想用等于,
的值来拆分它们:
[
[
{type: 'name', value: 'foo'},
{type: 'string', value: 'bar'}
],
[
{type: 'name', value: 'buzz'}
]
]
我应该怎么做?您可以使用来迭代项目。有三种情况:
,
-添加不含该项的新子数组const数据=[
{type:'name',value:'foo'},
{类型:'string',值:'bar'},
{type:'special',value:','},
{类型:'name',值:'buzz'}
];
常量结果=数据减少((r,o)=>{
如果(o.value===',')返回[…r,[];
如果(!r.length)返回[[o]];
r[r.length-1]。推(o);
返回r;
}, []);
控制台日志(结果)使用forEach编码>
让arr=[
{type:'name',value:'foo'},
{类型:'string',值:'bar'},
{type:'special',value:','},
{类型:'name',值:'buzz'}
]
设op=[];
设temp=[];
arr.forEach((e,i)=>{
如果(e.value=='、'&&temp.length){
操作推送(温度);
温度=[];
}否则{
温度推动(e);
}
});
if(温度长度)操作推送(温度);
控制台日志(op)代码>你试过什么?具体需要什么帮助?嗯,我想到的唯一一件事是遍历数组并将对象放入数组中,然后当遇到逗号时,启动另一个数组。一定有更好的办法,但我实在想不起来。。