js将数对象某些属性去重后组成一个新的对象并这些属性用逗号分隔
时间: 2024-03-05 09:51:41 浏览: 14
可以使用对象的 reduce 方法和 Set 数据结构来实现。具体操作如下:
```javascript
const arr = [
{name: '张三', age: 20},
{name: '李四', age: 22},
{name: '张三', age: 20},
{name: '王五', age: 25},
{name: '李四', age: 22}
];
const uniqueObj = arr.reduce((unique, item) => {
const key = item.name + item.age;
if (!unique[key]) {
unique[key] = {
name: item.name,
age: item.age
};
}
return unique;
}, {});
const result = Object.values(uniqueObj).map(item => {
return `${item.name}-${item.age}`;
}).join(',');
console.log(result); // "张三-20,李四-22,王五-25"
```
首先使用 reduce 方法对数组进行遍历,同时使用对象的属性来记录已经存在的元素,如果当前元素不存在,则将其添加到对象中。最后使用 Object.values 方法将对象的值转为数组,并使用 map 方法将其转为字符串格式,最后使用 join 方法将其用逗号分隔输出。
相关问题
js将数对象某个属性去重后用逗号分隔
可以使用数组的 reduce 和 includes 方法来实现。具体操作如下:
```javascript
const arr = [{num: 1}, {num: 2}, {num: 1}, {num: 3}, {num: 2}];
const uniqueArr = arr.reduce((unique, item) => {
if (!unique.includes(item.num)) {
unique.push(item.num);
}
return unique;
}, []).join(',');
console.log(uniqueArr); // "1,2,3"
```
首先使用 reduce 方法对数组进行遍历,同时使用 includes 方法判断当前元素是否已经存在于新数组中,如果不存在则将其添加到新数组中。最后使用 join 方法将新数组用逗号分隔转为字符串输出。
js将数对象某个属性去重后该属性放在另一个对象的值中并用逗号隔开
你可以用 Set 数据结构来实现属性去重,然后将去重后的结果转换为字符串并用逗号隔开,最后将该字符串作为另一个对象的属性值。以下是一个示例代码:
```javascript
// 原始对象
const obj = {
prop1: [1, 2, 3, 2, 4],
prop2: [2, 3, 5, 3, 6]
};
// 新对象
const newObj = {};
// 遍历原始对象的每个属性
for (let prop in obj) {
// 使用 Set 数据结构去重
const uniqueValues = [...new Set(obj[prop])];
// 将去重后的结果转换为字符串并用逗号隔开
const uniqueString = uniqueValues.join(',');
// 将去重后的结果作为新对象的属性值
newObj[prop] = uniqueString;
}
console.log(newObj);
// 输出:{ prop1: '1,2,3,4', prop2: '2,3,5,6' }
```
上述代码中,我们首先遍历原始对象的每个属性,然后使用 Set 数据结构对属性值进行去重,将去重后的结果转换为字符串并用逗号隔开,最后将该字符串作为新对象的属性值。