Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-更新数组中的重复数字_Javascript_Arrays - Fatal编程技术网

Javascript-更新数组中的重复数字

Javascript-更新数组中的重复数字,javascript,arrays,Javascript,Arrays,我有一个这样的无序列表 list1 = [2,3,1,2,1,3,3,1,2] 我希望每次都将+10添加到此列表中的定期元素。所以应该有一个清单如下 list1 = [2,3,1,12,11,13,23,21,22] 同时,列表顺序必须保持不变 事实上,列表比这里的示例长(10位数字重复7次) 非常感谢您的建议。只需进行查找,计算数字的频率,然后将频率乘以10,再将数字相加即可 const list1=[2,3,1,2,1,3,3,1,2], 查找={}, 结果=列表1.map(编号=>{

我有一个这样的无序列表

list1 = [2,3,1,2,1,3,3,1,2]
我希望每次都将+10添加到此列表中的定期元素。所以应该有一个清单如下

list1 = [2,3,1,12,11,13,23,21,22]
同时,列表顺序必须保持不变

事实上,列表比这里的示例长(10位数字重复7次)


非常感谢您的建议。

只需进行查找,计算数字的频率,然后将频率乘以10,再将数字相加即可

const list1=[2,3,1,2,1,3,3,1,2],
查找={},
结果=列表1.map(编号=>{
查阅[编号]=(查阅[编号]| | 0)+1;
返回编号+(查找[编号]-1)*10;
});

控制台日志(结果)您可以这样做:


var list1=[2,3,1,2,1,3,3,1,2];
var countObject={};
列表1.forEach(函数(项、索引){
if(countObject[项目]){
列表1[索引]=项+(10*countObject[项]);
countObject[项目]=countObject[项目]+1;
}否则{
countObject[项目]=1;
}
});

对于紧凑型版本,您可以在对象上取闭包进行计数,并将零指定给未知属性并递增该值

const
列表=[2,3,1,2,1,3,3,1,2],
结果=list.map((o=>v=>v+10*(o[v]??=0,o[v]+)({}));

console.log(…结果)你能展示你尝试过的吗?它给出了
类型错误:list1.foreach不是一个函数
,它是foreach,不是foreach。它不提供OP指定的输出,这返回
[2,3,1,12,11,13,13,11,12]
,但OP要求
[2,3,1,12,11,13,23,21,22]
。嗨,Majid,谢谢你的建议,我会试试Ethey Hassan,它工作顺利,对我的目的非常有用。非常感谢。嗨,尼娜,谢谢你的建议!我会试试的