我有一个像这样的json数据
{
"name":"John",
"age":30,
"cars":"BMW"
},
{
"name":"Micheal",
"age":30,
"cars":"Ford"
},
{
"name":"Andy",
"age":29,
"cars":"Ford"
}
我希望能够从类似于以下数组中获取汽车的唯一值:
cars = ["BMW, Ford"];
我有一个像这样的json数据
{
"name":"John",
"age":30,
"cars":"BMW"
},
{
"name":"Micheal",
"age":30,
"cars":"Ford"
},
{
"name":"Andy",
"age":29,
"cars":"Ford"
}
cars = ["BMW, Ford"];
Set
来获取唯一值。
var array = [{ name: "John", age: 30, car: "BMW" }, { name: "Micheal", age: 30, car: "Ford" }, { name: "Andy", age: 29, car: "Ford" }],
cars = Array.from(new Set(array.map(({ car }) => car)));
console.log(cars);
const
getUniqueValues = (data, key) => Array.from(new Set(array.map(({ [key]: value }) => value))),
array = [{ name: "John", age: 30, car: "BMW" }, { name: "Micheal", age: 30, car: "Ford" }, { name: "Andy", age: 29, car: "Ford" }];
console.log(...getUniqueValues(array, 'name'));
console.log(...getUniqueValues(array, 'car'));
export const filterByUniqueValues = (key, data) => { return Array.from(new Set(data.map(({key}) => key))) };
我知道key参数已经声明了,但是它的值从来没有被读取过。 - HelpANoobOut使用Array.map方法获取所有汽车价值,并使用Array.filter方法过滤重复的汽车价值,可以通过链接连写Array.map().filter()
实现。
var arr = [{
"name": "John",
"age": 30,
"cars": "BMW"
},
{
"name": "Micheal",
"age": 30,
"cars": "Ford"
},
{
"name": "Andy",
"age": 29,
"cars": "Ford"
}
];
var carValues = arr.map( (value) => value.cars).filter( (value, index, _arr) => _arr.indexOf(value) == index);
console.log(carValues);
Array.map()
将每个对象映射到键 cars
,并使用 Array.filter()
来删除重复项。var cars = arr.map(ele => ele.cars).filter((ele, i, arr) => arr.indexOf(ele) == i);
var arr = [{
"name":"John",
"age":30,
"cars":"BMW"
},
{
"name":"Micheal",
"age":30,
"cars":"Ford"
},
{
"name":"Andy",
"age":29,
"cars":"Ford"
}];
var cars = arr.map(ele => ele.cars).filter((ele, i, arr) => arr.indexOf(ele) == i);
console.log(cars);
您也可以使用ES5。
var res = arr.map(function(ele){
return ele.cars
}).filter(function(ele, i, arr){
return arr.indexOf(ele) == i
});
var arr = [{
"name":"John",
"age":30,
"cars":"BMW"
},
{
"name":"Micheal",
"age":30,
"cars":"Ford"
},
{
"name":"Andy",
"age":29,
"cars":"Ford"
}];
var cars = [];
arr.forEach(function(car) {
if (!cars.includes(car["cars"]) {
cars.push(car["cars"]);
}
})
cars
中创建一个数组,然后使用Set
类获取唯一值! - vrintle