You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Lodash遍历对象数组提取去重后MARKET值并按字母序排序

调整方案

你当前代码的核心问题是:_.uniqBy 仅完成了对象级别的去重,返回的是去重后的完整对象集合,没有单独提取 MARKET 字段,也没有做字母排序,按以下逻辑调整即可:

  1. 先从原始对象数组中提取所有 MARKET 字段值,得到字符串数组
  2. 对字符串数组做去重处理
  3. 对去重后的结果做字母顺序排序

完整修改后的代码

$scope.nestAssociation = (arr) => {
    const rawData = JSON.parse(arr);
    // 若MARKET所在数组在rawData的message字段下,将下方rawData替换为rawData.message即可
    const sortedUniqueMarkets = $scope._.chain(rawData)
        .map('MARKET') // 提取所有MARKET字段值
        .uniq() // 去重
        .sortBy() // 按字母顺序排序
        .value();
    
    console.log("最终结果:", sortedUniqueMarkets);
    return sortedUniqueMarkets;
}

分步写法(不使用链式调用)

$scope.nestAssociation = (arr) => {
    const rawData = JSON.parse(arr);
    // 提取所有MARKET值
    const allMarketList = rawData.map(item => item.MARKET);
    // 去重
    const uniqueMarketList = $scope._.uniq(allMarketList);
    // 字母排序
    const sortedMarketList = uniqueMarketList.sort();

    return sortedMarketList;
}

内容的提问来源于stack exchange,提问作者Peter The Angular Dude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:24:01