检查对象属性值是否唯一,如果没有过滤掉 - JS

时间:2018-04-01 14:51:54

标签: javascript

我正在构建一个小型webapp,我使用的是API,其中包含大约485个对象。这些对象具有特定属性center。可能会发生center属性有时与其他对象'center同等(而不是唯一)。如何过滤掉重复项?

到目前为止我的代码

function call() {

    fetch('https://data.nasa.gov/resource/9g7e-7hzz.json')
        .then((response) => {
            return response.json();
        })
        .then((data) => {
            locations = data;
            getLocations(locations);
        })

}

function getLocations(locations) {

    //Filter out duplicates and push it to an array
    locations.forEach((location) => {

        console.log(location.center);

    })



}

enter image description here

所以我期望的结果是一个带有对象的数组,在center属性中具有唯一值。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

Set可以在这里为您提供帮助:

function getLocations(locations) {
    let centers = new Set();
    let uniques = [];
    for (let location of locations) {
        if (!centers.has(location.center)) {
            centers.add(location.center);
            uniques.push(location);
        }
    }
    return uniques;
}