js将json数组某一属性取出并去重
时间: 2023-09-20 12:10:59 浏览: 85
可以使用ES6中的Set数据结构和Array的map方法来实现。
假设有如下的JSON数组:
```javascript
const jsonArray = [
{id: 1, name: 'Apple'},
{id: 2, name: 'Banana'},
{id: 3, name: 'Apple'},
{id: 4, name: 'Orange'},
{id: 5, name: 'Banana'}
];
```
如果想要取出其中的name属性并去重,可以这样做:
```javascript
const uniqueNames = [...new Set(jsonArray.map(item => item.name))];
console.log(uniqueNames); // ['Apple', 'Banana', 'Orange']
```
首先使用Array的map方法将jsonArray中的每个元素映射为其name属性,得到一个新数组。然后使用Set数据结构将新数组去重,再将Set转为数组输出即可。
相关问题
js按照json数组某一属性值进行排序
可以使用JavaScript的`sort()`方法和比较函数来实现按照JSON数组某一属性值进行排序。
假设有如下JSON数组:
```javascript
var arr = [
{ name: "Tom", age: 20 },
{ name: "Jerry", age: 18 },
{ name: "Alice", age: 25 }
];
```
如果想按照`age`属性值进行排序,可以这样实现:
```javascript
arr.sort(function(a, b) {
return a.age - b.age;
});
```
这里的比较函数接收两个参数`a`和`b`,分别表示数组中的两个元素。如果`a.age`小于`b.age`,那么`a`排在`b`前面,否则`b`排在`a`前面。这样就可以实现按照`age`属性值进行升序排序了。
如果想按照降序排序,只需要将比较函数改为:
```javascript
arr.sort(function(a, b) {
return b.age - a.age;
});
```
这样就可以实现按照`age`属性值进行降序排序了。
json数组将某一属性值取出构成新的数组并进行去重处理
可以使用JavaScript的Array.map()和Set数据结构来实现将JSON数组中某一属性值取出构成新的数组并去重的功能。
假设我们有以下的JSON数据:
```
const data = [
{ name: 'Alice', age: 20 },
{ name: 'Bob', age: 21 },
{ name: 'Cindy', age: 20 },
{ name: 'David', age: 22 },
{ name: 'Eva', age: 20 }
];
```
我们想要将其中的年龄值取出构成新的数组,并进行去重处理。可以按照如下方式来实现:
```
const ages = [...new Set(data.map(item => item.age))];
```
这段代码中,我们首先使用map()方法将JSON数组中每个元素的年龄值取出,然后使用Set数据结构对其进行去重处理。最终,我们将Set数据结构转换为数组,得到了一个仅包含不同年龄值的数组。
如果您使用的是ES5或更早版本的JavaScript,则不能使用Set数据结构。可以使用以下代码来实现相同的功能:
```
var ages = data.map(function(item) {
return item.age;
}).filter(function(value, index, self) {
return self.indexOf(value) === index;
});
```
这段代码中,我们首先使用map()方法将JSON数组中每个元素的年龄值取出,然后使用filter()方法对其进行去重处理。在filter()方法中,我们使用indexOf()方法来判断当前元素是否为第一次出现。如果是,则保留该元素,否则过滤掉该元素。最终,我们得到了一个仅包含不同年龄值的数组。
阅读全文