我有以下动态生成的数组:
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;},
谢谢
将代码编辑为有效数组。
答案 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" );