js 怎么去重合并

新手上路,请多包涵

[{index: 0, bg: "rgba(134,115,230,0.55)", discount: 250},
{index: 1, bg: "rgba(134,115,230,0.55)", discount: 250},
{index: 2, bg: "rgba(134,115,230,0.55)", discount: 250},
{index: 3, bg: "rgba(97,199,242,0.4)", discount: 0},
{index: 4, bg: "rgba(97,199,242,0.4)", discount: 0}]

合并之后变成[{index:'00:00-02:00', discount: 250},
{index:'03:00:04:00', discount: 0}]

阅读 1.5k
1 个回答

首先你这样的数据结构有问题,可以先思考一下定义一个合适的数据结构来完成需求的功能,
你要的结果:

var _ = require('lodash');
let input = [{index: 0, bg: "rgba(134,115,230,0.55)", discount: 250},
{index: 1, bg: "rgba(134,115,230,0.55)", discount: 250},
{index: 2, bg: "rgba(134,115,230,0.55)", discount: 250},
{index: 3, bg: "rgba(97,199,242,0.4)", discount: 0},
{index: 4, bg: "rgba(97,199,242,0.4)", discount: 0}]

let temp = _.uniqBy(input,'discount');
console.log(temp);

let result = temp.map(item=>{
    if(item.discount ===250){
        return {
            index:'00:00-02:00',
            discount:250,
        }
    }else if(item.discount ===0){
        return {index:'03:00:04:00', discount: 0}
    }
})

console.log(result);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题