Javascript数组,查找并组合具有重复值的条目
我有以下动态生成的数组:Javascript数组,查找并组合具有重复值的条目,javascript,arrays,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%
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;},
多谢各位
将代码编辑为有效数组。这是一个只有一个成员的数组文本。您需要在逗号之间结束字符串以分隔成员。我将尝试将每个成员重写为对象文本,并使用json方法在字符串和对象之间交替。在对象形式中,您可以执行mixin来合并相似的成员。这是一个只有一个成员的数组文本。您需要在逗号之间结束字符串以分隔成员。我将尝试将每个成员重写为对象文本,并使用json方法在字符串和对象之间交替。在对象形式中,您可以进行混合以合并相似的成员。哦,我明白了。。你正在打印你的阵列,这就是你得到的,对吗 那样的话
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
}
}
}
哦,我明白了。。你正在打印你的阵列,这就是你得到的,对吗 那样的话
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
}
}
}
这是一个有效的javascript数组吗?这是我数组的一部分。应该对[]有效有一个介于55和{之间的点。我已经删除了它。数组应该是有效的。它仍然不是一个有效的数组。那XX%是什么东西?那是一些动画还是什么?那是一个有效的javascript数组吗?这是我数组的一部分。应该对[]有效有一个介于55和之间的点{。我已经删除了它。数组应该是有效的。它仍然不是一个有效的数组。那XX%是什么东西?那是一些动画还是什么?对不起,代码有错误。我不知道为什么…我可以这样做:var myArray=(“0%{left:74px;top:202px;}”,“44%{left:427px;top:122px;}”,“等等”);我的代码可能有bug,但理论上你应该这么做……首先让你的数组看起来正确(如我在答案底部所示)。然后在数组中循环查找前几个字符的匹配项,并将它们合并在一起,然后拼接出重复项。抱歉,代码有错误。我不知道为什么…我可以将数组设置为:var myArray=(“0%{left:74px;top:202px;}”,“44%{left:427px;top:122px;}”,“etc”,“etc”);我的代码可能有bug,但理论上你应该这么做……首先让数组看起来正确(如我在答案底部所示)。然后在数组中循环查找前几个字符的匹配项,并将它们合并在一起,然后拼接出重复项。