Javascript数组,查找并组合具有重复值的条目

时间:2010-09-25 11:03:26

标签: javascript arrays

我有以下动态生成的数组:

var myArray = ("0% { left:74px; top:202px; }"   , "44% { left:427px; top:122px; }", "0% { font-size:11px; }", "55% { font-size:49px; }" );

有两个条目具有相同的起始值:0%。我怎样才能找到它并将它们组合在一起:

form:
0% { left:74px; top:202px; },
0% { font-size:11px; },
to
0% { left:74px; top:202px; font-size:11px;},

谢谢

将代码编辑为有效数组。

2 个答案:

答案 0 :(得分:2)

这是一个只有一个成员的数组文字。您需要在逗号之间结束字符串以分隔成员。我会尝试将每个成员重写为对象文字,并使用json方法在字符串和对象之间交替。在对象形式中,您可以使用mixin来合并类似的成员。

答案 1 :(得分:1)

哦,我明白了......你正在打印你的阵列,这就是你得到的,对吗?

在那种情况下......

for(var i =0; i< myArray.length ; i++){
  for(var j=i+1; j<myArray.length;j++){
      if(i == j) continue;
      if(myArray[i].substring(0,3) == myArray[j].substring(0,3)){//found matching first 2 chars
         myArray[i] = myArray[i].substring(0,3) + myArray[j].replace(/\{(.*?)\}/,"$1 ;") + myArray[i].substring(4);

        myArray.splice(j--,1);//remove the doup and decrease the counter so you don't skip one now that the array is shorter

      }
  }
}

我没有对此进行测试,但是出现了这种情况:)

哦,你编辑了。你现在拥有的绝对不是阵列...但你比以前更接近。

我认为数组是一个保留字......

var myArray = ("0% { left:74px; top:202px; }"   , "44% { left:427px; top:122px; }", "etc", "etc" );