js将数对象某些属性去重后组成一个新的对象并这些属性用逗号分隔
时间: 2024-03-05 09:51:41 浏览: 42
可以使用对象的 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 方法将新数组用逗号分隔转为字符串输出。
vue list中根据某个字段去重后当前字段转成逗号分隔的
如果你在 Vue 中有一个列表(数组),你想根据某个字段进行去重,并将当前字段的值转换成逗号分隔的字符串,你可以按照以下步骤进行操作:
1. 首先,使用 JavaScript 的 `Set` 数据结构进行去重。创建一个空的 Set,并遍历列表,将需要去重的字段值添加到 Set 中。
```javascript
const uniqueSet = new Set();
yourList.forEach(item => {
uniqueSet.add(item.fieldName); // 替换 fieldName 为你需要去重的字段名
});
```
2. 接下来,将 Set 转换为数组,并使用 `join` 方法将数组转换为逗号分隔的字符串。
```javascript
const uniqueArray = Array.from(uniqueSet);
const commaSeparatedString = uniqueArray.join(',');
```
最终,`commaSeparatedString` 就是根据字段去重后,当前字段值转换成逗号分隔的字符串。
请注意替换 `yourList` 和 `fieldName` 为你实际的列表和字段名。
阅读全文