用设置值替换数组中的重复值 [英] Replacing a duplicate value in an array with a set value

查看:37
本文介绍了用设置值替换数组中的重复值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试构建一个数组,该数组将替换重复的值将成为一个设置值.我不确定如何去做.

I'm trying to build an array that will replace duplicate values will a set value. I'm not sure how to go about doing it though.

        var enemy1 = 400 + $gameTroop.members()[0].enemyId();
        var enemy2 = 400 + $gameTroop.members()[1].enemyId();
        var enemy3 = 400 + $gameTroop.members()[2].enemyId();
        var array = [enemy1, enemy2, enemy3];
console.log(array);
array.forEach(function(kValue)) {
// do something
}

使用此数组将踢出我指定的值.ec [410,411,412]

With this the array will kick out my designated values. ec [410, 411, 412]

如果有重复;[410,410,412]

In the event that there is a duplicate; [410, 410, 412]

我想将重复项的值更改为1000.

I want to change the duplicate to be a value of 1000.

这样[410,410,412]

So that [410, 410, 412]

现在等于[410,1000,412]

now equals [410, 1000, 412]

任何帮助都将受到赞赏.

Any and all help is appreciated.

推荐答案

您可以采用 Set 并为看到的值映射一个不同的值.

You could take a Set and map a different value for seen values.

const 
    data = [410, 410, 412],
    result = data.map((s => v => s.has(v)
        ? 1000
        : (s.add(v), v)
    )(new Set));

console.log(result);

这篇关于用设置值替换数组中的重复值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆