问题描述
我正在处理一项任务,我必须根据对象数组中的某些值创建数组。
输入数组:
const array = [{
name: 'A',age: points: { x: 100,y: 107}
},{
name: 'B',age: points: { x: 210,{
name: 'C',age: points: { x: 110,{
name: 'D',age: points: { x: 230,y: 107}
}
];
预期输出:
[
[
{
name: 'A',y: 107}
},{
name: 'C',y: 107}
}
],[
{
name: 'B',{
name: 'D',y: 107}
}
]
]
注意:这里的条件值是动态的,比如在一定条件下后面的点可以落入一个数组,如果不符合条件则形成新的数组等等,可能有200+个对象在数组中。
如果出现新对象
{
name: 'D',y: 107}
}
然后将形成一个新的对象数组,所有落入该条件的对象都应添加到该数组中。
请提出您宝贵的建议。
提前致谢。
解决方法
你的问题不是很清楚。据我所知,您有一个对象数组,您需要存储一个空的结果数组。然后,一一消耗“动态条件”,对原始数组使用过滤方法,并不断将结果添加到结果数组中。
这是一些伪代码:
let dataArray = [<your objects>];
let resultArray = [];
while(<dynamic condtions list is not empty>)
{
resultArray.push(dataArray.filter(item=>{
// write your filter logic based on your current dynamic condition here
if(item satisifes condition)
return true;
else
return false;
}))
}
console.log(resultArray);