ES6写法两次循环遍历一个二维数组,去校验最里面的对象值是否为空
时间: 2023-08-12 19:34:48 浏览: 43
ES6中可以使用数组的 `forEach` 方法来代替循环语句,简化代码。示例代码如下:
```javascript
const arr = [
[{name: 'Alice', age: 22}, {name: 'Bob', age: 30}],
[{name: 'Charlie', age: 25}, {name: 'David', age: 28}],
[{name: '', age: null}, {name: 'Eva', age: 24}]
];
arr.forEach((row, i) => {
row.forEach((obj, j) => {
if (!obj.name || !obj.age) {
console.log(`第 ${i} 行,第 ${j} 列的对象值为空`);
}
});
});
```
在这个例子中,我们使用了数组的 `forEach` 方法来对二维数组进行遍历。在外层的 `forEach` 中,第一个参数 `row` 表示当前行的数组,第二个参数 `i` 表示当前行的索引。在内层的 `forEach` 中,第一个参数 `obj` 表示当前对象,第二个参数 `j` 表示当前对象的索引。这样就可以对二维数组中的所有对象进行校验了。
需要注意的是,这里的判断条件和上面的示例一样,即只要 `name` 或 `age` 中有一个为空,就会被判断为空值。如果需要更加精确的判断,可以根据具体情况进行修改。
相关问题
es6一维数组转二维数组
可以使用ES6中的`Array.from()`方法和`Array.slice()`方法将一维数组转换为二维数组。具体实现如下:
```javascript
const arr1 = [1, 2, 3, 4, 5, 6];
const row = 2;
const col = 3;
const arr2 = Array.from({ length: row }, (_, rowIndex) =>
arr1.slice(rowIndex * col, rowIndex * col + col)
);
console.log(arr2);
// Output: [[1, 2, 3], [4, 5, 6]]
```
其中,`Array.from()`方法可以将类数组对象或可迭代对象转换成一个新的数组实例。第一个参数是一个类数组对象或可迭代对象,第二个参数是一个映射函数,用于对每个元素进行处理。在这个例子中,第一个参数是一个包含两个元素的数组,长度为`row`,第二个参数是一个映射函数,它的第一个参数是元素的值,第二个参数是元素的索引。`arr1.slice(rowIndex * col, rowIndex * col + col)`用于取出一段长度为`col`的数组,从而将一维数组转换成二维数组。
es6两组两维数组,去除相同id的,合并成一个数组
没有问题,我可以帮您解决这个问题。您需要使用ES6中的数组方法来实现这个功能。首先,您可以使用Array.from()方法将两个数组合并成一个数组,然后使用ES6中的Set对象去除相同的id。最后,您可以使用Array.from()方法将Set对象转换为数组。以下是一个代码示例:
```
const arr1 = [[1, 'a'], [2, 'b'], [3, 'c']];
const arr2 = [[2, 'd'], [3, 'e'], [4, 'f']];
const mergedArray = Array.from(new Set([...arr1, ...arr2].map(item => item[0]))).map(id => {
const [arr1Item] = arr1.find(item => item[0] === id) || [];
const [arr2Item] = arr2.find(item => item[0] === id) || [];
return [id, arr1Item ? arr1Item[1] : arr2Item[1]];
});
console.log(mergedArray); // Output: [[1,'a'], [2,'b'], [3,'c'], [4,'f']]
```
以上代码首先将两个数组合并成一个数组,然后使用.map()方法从合并后的数组中取出id,并使用Set对象去除重复的id。接下来,使用.map()方法将不同数组中id相同的项合并成一个数组项。最后,将Set对象转换为数组并输出结果。希望这个示例可以帮到您。