Javascript JS使数组中的所有值都不同

Javascript JS使数组中的所有值都不同,javascript,Javascript,这是我真实问题的一个简化版本,因此理想情况下,我正在寻找一个没有内置函数的简单解决方案 我有一个数组: let data = [5,5,5,5,5]; 我想从第二项开始,将其与第一项进行比较。如果它们相同,我希望增加1,因此我的数组如下所示: let data = [5,6,5,5,5]; let data = [5,6,6,5,5]; let data = [5,6,7,5,5]; 然后,我想将下一个数组项与我检查过的所有其他数组项进行比较,如果有相同的数组项,则增加1,因此数组如下所

这是我真实问题的一个简化版本,因此理想情况下,我正在寻找一个没有内置函数的简单解决方案

我有一个数组:

let data = [5,5,5,5,5];
我想从第二项开始,将其与第一项进行比较。如果它们相同,我希望增加1,因此我的数组如下所示:

let data = [5,6,5,5,5];
let data = [5,6,6,5,5];
let data = [5,6,7,5,5];
然后,我想将下一个数组项与我检查过的所有其他数组项进行比较,如果有相同的数组项,则增加1,因此数组如下所示:

let data = [5,6,5,5,5];
let data = [5,6,6,5,5];
let data = [5,6,7,5,5];
但是现在我检查的值中有两个值相同,所以我想检查我已经检查过的数组中是否有类似的值,如果当前值与之前的值相同,则在当前数组索引处的项中添加一个值。6已被使用,因此我想将数组更改为如下所示:

let data = [5,6,5,5,5];
let data = [5,6,6,5,5];
let data = [5,6,7,5,5];
等等

我有这个,但它没有产生我想要的结果:

let data = [5,5,5,5,5]
const looper = () => {
  for (let i=-1; i<data.length; i++) {
    console.log("i", i)
    for (let j=1; j<data.length; j++) {
      console.log("j", j)
      if (data[i] <= data[i-1] ) {
        console.log("DATA", i, data[i])
        data[i] += i
        console.log("DATA", i, data)
        looper()
      } else {
        continue
      }
    }             
  }
}

looper()

将其分为两部分:

第1部分:

根据阵列1调整阵列2中的所有元素

第2部分:


使数组2中的数字唯一:在这里,您需要不断迭代数组,直到在迭代中没有发现任何更改。

将其分解为两部分:

第1部分:

根据阵列1调整阵列2中的所有元素

第2部分:


使数组2中的数字唯一:在这里,您需要不断迭代数组,直到在迭代中未发现任何更改。

您可以获取一个对象并引用最大值

函数数组{ 常数 getValue=v=>{ 如果值中的v返回getValuevalues[v]; 数值[v]=v+1; 返回v; }, 值={}; 返回array.mapgetValue } log…fn[5,5,5,5,5]; console.log…fn[5,5,4,5,5];
console.log…fn[5,5,6,6,4,4] 您可以获取一个对象,并获取对最大值的引用

函数数组{ 常数 getValue=v=>{ 如果值中的v返回getValuevalues[v]; 数值[v]=v+1; 返回v; }, 值={}; 返回array.mapgetValue } log…fn[5,5,5,5,5]; console.log…fn[5,5,4,5,5]; console.log…fn[5,5,6,6,4,4] const fun=ra=>{ 对于let i=1;i{ 对于let i=1;ilog…fun[4,3,3,5];[5,5,4,5,5]会变成[5,6,7,8,9]还是[5,6,5,7,8]?你有更多的例子和结果吗?因为它是一个递归函数,你不需要第二个for循环。那么输出是什么呢?[5,5,4,5,5,5]会变成[5,6,7,8,9]还是[5,6,5,7,8]你有更多的例子和结果吗?因为它是一个递归函数,你不需要第二个for循环。那么输出是什么呢?。。。没有内置函数。。最好搬走。map@DevCl9,很容易用for循环替换映射。我知道。我只是技术性的:我已经试过了,而“in”也帮不了我。对不起,我很挑剔,但是我很难推广这个,这样我就可以传入数组[{cx:2,cy:3},{cx:2,cy:3},{cx:2,cy:3},{cx:2,cy:3},{cx:2,cy:3},]@Davtho1983,它的预期结果是什么?。。。没有内置函数。。最好搬走。map@DevCl9,很容易用for循环替换映射。我知道。我只是技术性的:我已经试过了,而“in”也帮不了我。对不起,我很挑剔,但是我很难推广这个,这样我就可以传入数组[{cx:2,cy:3},{cx:2,cy:3},{cx:2,cy:3},{cx:2,cy:3},{cx:2,cy:3},]@Davtho1983,它的预期结果是什么?