如何根据对象数组的值创建数组?

问题描述

我正在处理一项任务,我必须根据对象数组中的某些值创建数组。

输入数组:

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);