Javascript,合并数组元素

标签 javascript arrays

我一直在寻找一种合并数组元素的方法。

所以我的数组的格式为[id1:port1,id2:port2,id1:port3,id2:port4,id5:port5...],其中每个元素都有2个部分。 id 部分不是唯一的。我尝试合并的是创建一个新数组,其中包含 [id1#port1:port3,id2#port2:port4,id5#port5]

等数据

我尝试了下面的代码,但它并没有让我走得太远。有高手可以帮帮我吗?

var orinString = "id1:port1,id2:port2,id1:port3,id2:port4,id5:port5";

var newArray1 = orinString.split(",");
var newArray2 = orinString.split(",");
var newArray3 = [];

for (x=0; x<=newArray1.length-1; x++) {
  for (y=0; y<= newArray2.length-1; y++) {
    if ((newArray1[x].split(":")[0] == newArray2[y].split(":")[0]) && (newArray1[x].split(":")[1] != newArray2[y].split(":")[1])) {
      newArray3.push(newArray1[x].split(":")[0] +"#"+ newArray1[x].split(":")[1]);
    }
  }
}

for (z=0; z<=newArray3.length; z++) {
  gs.log("show me the result " +newArray3[z]);
}

最佳答案

是你想要的吗:

var orinString = "id1:port1,id2:port2,id1:port3,id2:port4,id5:port5";
var arr1 = orinString.split(",");
var temp= ""; 
var newStr = "";
arr1.sort();
for(i=0; i< arr1.length; i++) {
    var item = arr1[i].split(':');
    if(item[0] !== temp || temp === "") {
        newStr += "," + item[0] + "#" + item[1];
    } else {
        newStr += ":"+item[1];
    }
    temp = item[0];
}
console.log(newStr.substring(1));

关于Javascript,合并数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33578961/

相关文章:

c++ - 为什么 C++ 中的 "delete [][]... multiDimensionalArray;"运算符不存在

java - 如何从字符串中返回单词

javascript - 没有请求和响应冲突的多个 ajax 请求

javascript - 如何查找外部 CSS 文件中的规则数?

javascript - if 语句未进入 for 循环

python - 如何根据索引过滤 numpy 数组?

arrays - 从随机数组中检索随机数量的项目

将 C 数组和指针代码转换为 Go

javascript - 使用 PhoneGap、AJAX 和 JQuery Mobile 连接到 MySQL 数据库

javascript - 将数据从 Javascript 发布到 Django 时如何修复 403(禁止)错误