一个数组里面有三个对象,如[ {1:'1'}, {1:'2'}, {1:'3'} ]我要如何构建代码,判断对象中是否包含值为‘1’的对象,并将值为1所在的对象设为一级数据,别的对象放在一级数据中的二级数据中如[ { 1:'1', children: [ {1:'2'}, {1:'3'} ] } ]
时间: 2024-04-08 11:28:32 浏览: 50
你可以使用 JavaScript 中的循环和条件判断来实现这个要求。下面是一个示例代码:
```javascript
const arr = [
{1: '1'},
{1: '2'},
{1: '3'}
];
let primaryData = {};
for (let obj of arr) {
if (Object.values(obj).includes('1')) {
primaryData['1'] = Object.values(obj)[0];
} else {
primaryData['children'] = primaryData['children'] || [];
primaryData['children'].push(obj);
}
}
console.log(primaryData);
```
在这段代码中,我们首先定义一个空对象 `primaryData` 作为一级数据的容器。然后,使用 `for...of` 循环遍历数组中的每个对象。
在循环中,我们使用 `Object.values()` 获取当前对象的值,并使用 `includes()` 方法判断是否包含值为 `'1'` 的对象。
如果找到了值为 `'1'` 的对象,我们将该对象的值存储到 `primaryData` 对象中,并使用键 `'1'` 进行存储。
如果没有找到值为 `'1'` 的对象,我们将当前对象存储到 `primaryData` 对象的 `'children'` 属性中。如果 `'children'` 属性不存在,则先创建一个空数组,然后将当前对象添加到该数组中。
最后,通过 `console.log()` 打印 `primaryData` 对象。
运行这段代码后,你会得到下面的输出结果:
```
{
"1": "1",
"children": [
{1: "2"},
{1: "3"}
]
}
```
这样就完成了根据条件将对象分类并构建一级和二级数据的操作。
阅读全文