【问题标题】:How to get all index value from array including same numbers?如何从包含相同数字的数组中获取所有索引值?
【发布时间】:2021-01-19 10:15:42
【问题描述】:
copyarray = yAxisdata.slice(0);  
length=yAxisdata.length;   
for (k = 0; k <length-1; k++)
{ 
     maxvalue = copyarray[k];
     indexvalue = yAxisdata.indexOf(maxvalue);
}

I am trying to find the index value of the data from array who's contain 800 data approximately and it is also contain lots of same value.

以上代码用于获取数组内所有可用元素的索引值。但问题是,如果数组当时有多个相同的值,则此代码仅显示第一个值的索引并跳过数组中的相同值并显示另一个值的索引。

【问题讨论】:

  • indexvalue = k?
  • 是javascript。

标签: javascript asp.net-mvc arraylist


【解决方案1】:

我不是 100% 熟悉 javascript,但我认为下面会解决问题

copyarray = yAxisdata.slice(0);  
length=yAxisdata.length;  
var result;
var maxvalue = 0;
var counter;

for (k = 0; k <length-1; k++)
{ 
    maxvalue = copyarray[k];
    result = [];
    counter = 0;

    for(x = 0; x < length -1; x++)
    {
        if(copyarray[x] == maxvalue)
        {
            result[counter] = x;
            counter++;
        }
    }
}

C# 版本是

int[] copyarray = yAxisdata.Select(ch => ch - '0').ToArray();

List<int> result = new List<int>();
int maxvalue = 0; 

for (int k = 0; k < copyarray.Count() - 1; k++)
{
    maxvalue = copyarray[k];
    
    // Alternative code
    // result = copyarray.Select((value, index) => new { value, index }).Where((a) => a.value == maxvalue).Select((a) => a.index).ToList();
    result = new List<int>();

    for(x = 0; x < copyarray.Count() - 1; x++)
    {
        if (copyarray[x] == maxvalue)
        {
            result.Add(x);
        }
    }
}

结果变量现在是一个数组,所有索引都包含最大值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多