Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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/3/arrays/12.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_Arraylist - Fatal编程技术网

Javascript 匹配相同值的十进制数以推入数组

Javascript 匹配相同值的十进制数以推入数组,javascript,arrays,arraylist,Javascript,Arrays,Arraylist,我在数组中有一个Srings var QNo = ["1.1","1.2","1.3","2.1","2.2","3.1","3.2","3.3","4.1","4.2"]; 需要在具有匹配小数的对象数组中更改QNo,如下所示 var result = [["1.1","1.2","1.3"],["2.1","2.2"],["3.1","3.2","3.3"],["4.1","4.2"]]; 我试过这种代码 for (var j = 0; j < QNo.length ; j++) {

我在数组中有一个Srings

var QNo = ["1.1","1.2","1.3","2.1","2.2","3.1","3.2","3.3","4.1","4.2"];
需要在具有匹配小数的对象数组中更改QNo,如下所示

var result = [["1.1","1.2","1.3"],["2.1","2.2"],["3.1","3.2","3.3"],["4.1","4.2"]];
我试过这种代码

for (var j = 0; j < QNo.length ; j++) {
     if ( QNo[j].match(/.*(?=\.)/g) ) {
      result.push(QNo[j]);
     }
}
for(var j=0;j

比赛结束后,我不知道如何将小数点作为对象来推送

您可以使用
reduce
遍历数组中的所有项,并使用
对象
按其int值对它们进行分组,其中每个项将进入该对象中的相关
(键基于int值):

var QNo=[“1.1”、“1.2”、“1.3”、“2.1”、“2.2”、“3.1”、“3.2”、“3.3”、“4.1”、“4.2”];
var减少=数量减少((资源、项目)=>{
if(res.hasOwnProperty(parseInt(item))){
res[parseInt(项目)]。推送(项目)
}否则{
res[parseInt(项目)]=[项目]
}
返回res;
}, {});
控制台日志(减少);

console.log(Object.values(reduced))您可以获取分割值的左侧部分,并检查最后一个值是否在同一组中,然后将该值推送到该组中。如果没有,则构建一个新组

var qNo=[“1.1”、“1.2”、“1.3”、“2.1”、“2.2”、“3.1”、“3.2”、“3.3”、“4.1”、“4.2”],
结果=数量减少(功能(r、a、i、aa){
函数左(a){return(a | |'''').split('..')[0]}
if(左(a)==左(aa[i-1])){
r[r.length-1]。推送(a);
}否则{
r、 推动([a]);
}
返回r;
}, []);
控制台日志(结果)

.as console wrapper{max height:100%!important;top:0;}
好的,到目前为止您尝试了什么?我尝试了匹配(/.*(=\)/g)来查找小数点,但在这之后我被卡住了。添加您编写的代码,而不仅仅是正则表达式。您是否编写了任何类型的循环来遍历所有值?bzw,您的结果无效。请注意,只有对字符串进行排序后,解决方案才会有效。。。否则它将无法工作。我知道这不在问题中(原始输入已排序),但我不确定依赖它是否是一种好的做法:)