Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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,我有这样一个数组{A1,B5,C6,A2,B7,C4}; 我想循环遍历数组,找到匹配的元素,然后在该匹配中执行一些操作。 上述数组中的匹配项是A1和A2、B5和B7,最后是C6和C4 以下是我迄今为止所做的工作: var arr = {A1,B5,C6,A2,B7,C4}; for (i=0; i < arr.length/2; i++) // Only running till length/2 since there is always another match hence don'

我有这样一个数组{A1,B5,C6,A2,B7,C4}; 我想循环遍历数组,找到匹配的元素,然后在该匹配中执行一些操作。 上述数组中的匹配项是A1和A2、B5和B7,最后是C6和C4

以下是我迄今为止所做的工作:

var arr = {A1,B5,C6,A2,B7,C4};
for (i=0; i < arr.length/2; i++) // Only running till length/2 since there is always another match hence don't need to run through all the length probably
{
for (j=i+1; j < arr.length; j++)
       {
         if(arr[i].charAt(0) == arr[j].charAt(0))
           {
             j=arr.length; //This is done to end the inner loop
             Do something;
             //if the matching element is found, ideally the i loop should ignore this record. I don't know how to do this.
           }
       }
 }
var arr={A1,B5,C6,A2,B7,C4};
对于(i=0;i
您需要首先对数组进行排序,以便更容易找到匹配对。下面是一种修改代码的方法

var arr=['A1','B5','C6','A2','B7','C4']
arr.sort();
log(“排序数组:”+arr);
对于(i=0;i}
您可以创建一个包含所有匹配项的对象,如下所示:

var arr=['A1','B5','C6','A2','B7','C4'];
var setsOfMatches={};
arr.forEach(功能(当前项){
var firstLetter=[currentItem.charAt(0)];
if(setsOfMatches[firstLetter]){//如果我们已经为这个字母设置了一个集合
setsOfMatches[firstLetter].push(currentItem);//将此项添加到其中
}否则{
setsOfMatches[firstLetter]=[currentItem];//创建集合
}
});
//控制台日志(匹配集);
//{  
//A:[“A1”、“A2”],
//B:[“B5”、“B7”],
//C:[“C6”、“C4”]
//}
//遍历匹配集
for(在setsOfMatches中设置的var){
log(“Set”+Set+:“+setsOfMatches[Set]);

}
这是什么语言?我猜是javascript,但OP需要适当地标记。抱歉,这样做。我会说它的语言是不可知的,但我不是一个开发人员,所以我将把它放在评论中使用
/
,而不是
\\
。您的
arr
无效,也不是数组。谢谢Piyush!我不同意排序可以节省不必要的代码和复杂度,我会说这实际上是完全相反的。排序是一个额外的步骤,增加了处理时间。您可以在数组中循环并根据第一个字符分离匹配项,而不是排序和索引。