【问题标题】:Setting a unique set of keys into a new array将一组唯一的键设置为新数组
【发布时间】:2022-01-27 17:29:34
【问题描述】:

我有一个对象数组:

让数据 = [{ “自治市镇”:“布朗克斯”, “邻里”:“贝切斯特” }, { “自治市镇”:“布朗克斯”, “邻里”:“贝德福德公园” }, { “自治市镇”:“皇后区”, “邻里”:“阿斯托利亚” }, { “自治市镇”:“皇后区”, “邻里”:“奥本代尔” }, { “自治市镇”:“曼哈顿”, “邻里”:“中城东” }, { “自治市镇”:“曼哈顿”, “邻里”:“中城南” }, { “自治市镇”:“曼哈顿”, “邻里”:“中城西” }, { “自治市镇”:“布鲁克林”, “邻里”:“展望公园” }, { “自治市镇”:“布鲁克林”, “邻里”:“展望公园南” }, { “自治市镇”:“布鲁克林”, “邻里”:“红钩” }];

我想遍历它并创建一个新数组来保存唯一键, 让 newArr = [“布朗克斯、“布鲁克林”、“曼哈顿”、“皇后区”]。

我尝试的是:

    const getUniqueValues = data.map((elm, i) => {
       
        let newArr  = [];
        if (!newArr.includes(elm['Borough'])) {
            newArr.push(elm.Borough)
        }
       
        return newArr;
       
     }
    )

但它只给了我一个元素数组,每个元素都在它自己的数组中, 所以我知道这就是 map 所做的,但是我不明白为什么重复项仍然存在。 另外,我确定我已经计算过度了,所以我会喜欢关于最简单代码的建议。 干杯!

【问题讨论】:

    标签: reactjs sorting key


    【解决方案1】:

    尝试使用reduce函数:

    let data = [{ "Borough": "Bronx", "Neghborhood": "Baychester" }, { "Borough": "Bronx", "Neghborhood": "Bedford Park" }, { "Borough": "Queens", "Neghborhood": "Astoria" }, { "Borough": "Queens", "Neghborhood": "Auburndale" }, { "Borough": "Manhattan", "Neghborhood": "Midtown East" }, { "Borough": "Manhattan", "Neghborhood": "Midtown South" }, { "Borough": "Manhattan", "Neghborhood": "Midtown West" }, { "Borough": "Brooklyn", "Neghborhood": "Prospect Park" }, { "Borough": "Brooklyn", "Neghborhood": "Prospect Park South" }, { "Borough": "Brooklyn", "Neghborhood": "Red Hook" }];
    
    const reduced = data.reduce((carry, current) => {
      if(!carry.some(e => e.Borough == current.Borough)){
        carry.push(current);
      }
      return carry;
    }, []);
    
    console.log(reduced)

    【讨论】:

      猜你喜欢
      • 2013-11-10
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多