使用es6遍历对象{id:'',name:''}
时间: 2023-12-23 21:05:55 浏览: 32
可以使用ES6中的`for...of`循环来遍历对象的属性,示例如下:
```javascript
const obj = { id: '001', name: 'John Doe' };
for (const key of Object.keys(obj)) {
console.log(key + ': ' + obj[key]);
}
```
输出结果为:
```
id: 001
name: John Doe
```
另外,也可以使用`Object.entries()`方法将对象转换为键值对数组,然后再使用`for...of`循环遍历,示例如下:
```javascript
const obj = { id: '001', name: 'John Doe' };
for (const [key, value] of Object.entries(obj)) {
console.log(key + ': ' + value);
}
```
输出结果同上。
相关问题
两个数组对象如果相同就放到一个新数组,如果不相同则放入另外一个数组 用ES6遍历
可以使用 ES6 中的 `Array.prototype.filter()` 和 `Array.prototype.find()` 方法来实现这个功能。下面是一个示例代码:
```javascript
const arr1 = [
{ id: 1, name: "apple" },
{ id: 2, name: "banana" },
{ id: 3, name: "pear" },
{ id: 4, name: "orange" }
];
const arr2 = [
{ id: 1, name: "apple" },
{ id: 3, name: "pear" },
{ id: 5, name: "grape" }
];
const sameArr = arr1.filter(item1 => arr2.find(item2 => item2.id === item1.id && item2.name === item1.name));
const diffArr = arr1.filter(item1 => !arr2.find(item2 => item2.id === item1.id && item2.name === item1.name)).concat(arr2.filter(item2 => !arr1.find(item1 => item1.id === item2.id && item1.name === item2.name)));
console.log("Same array:", sameArr);
console.log("Different array:", diffArr);
```
在这个示例代码中,我们使用 `Array.prototype.filter()` 方法来遍历 `arr1` 数组,并使用 `Array.prototype.find()` 方法来查找 `arr2` 数组中是否存在与当前元素相同的元素。如果存在,则将它们放入 `sameArr` 数组中。否则,将它们放入 `diffArr` 数组中。注意,在 `diffArr` 数组中,我们需要将 `arr2` 数组中不同于 `arr1` 数组的元素也加入其中。最后,我们输出这两个数组。
需要注意的是,这个算法的时间复杂度仍然是 O(n^2),因为 `Array.prototype.find()` 方法也需要遍历数组。如果数组很大,效率可能会较低。
es6 数组对象去重
要在ES6中对数组对象进行去重,有几种方法可以实现。
方法一是使用filter()方法和findIndex()方法。首先使用filter()方法返回一个新的数组,其中包含满足条件的唯一元素。然后使用findIndex()方法来检查新数组中是否已存在当前元素。如果不存在,则将其添加到新数组中。这种方法适用于简单的对象数组去重操作。
方法二是使用reduce()方法。reduce()方法可以对数组进行迭代,并返回一个累积值。在这种情况下,我们可以使用reduce()方法来遍历数组并构建一个新数组,其中没有重复的元素。可以通过检查每个元素是否在累积值中出现来实现去重。
另外,还可以使用ES6中新增的Set数据结构来进行去重。Set是一种值的集合,它只能存储唯一的值。可以将数组转换为Set,然后再将Set转换回数组。这样就可以去除重复的元素。
下面是一个示例代码,演示了如何使用reduce()方法实现数组对象去重:
```javascript
let person = [
{id: 0, name: "小明"},
{id: 1, name: "小张"},
{id: 2, name: "小李"},
{id: 3, name: "小孙"},
{id: 1, name: "小周"},
{id: 2, name: "小陈"},
];
let hasObj = {};
person = person.reduce((cur, next) => {
hasObj[next.id ? "" : (hasObj[next.id = true && cur.push(next));
return cur;
}, []);
console.log(person);
// 输出: [{"id": 0,"name": "小明"}, {"id": 1,"name": "小张"}, {"id": 2,"name": "小李"}, {"id": 3,"name": "小孙"}]
```
以上是几种常用的方法来实现ES6数组对象去重的方式。可以根据具体的需求选择其中适合的方法进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>