我是js的新手,我不太了解js中的代码和条件。 我的问题很简单,但我需要有人给我一个很好的例子,如果可能的话,因为我知道我需要什么但是在代码中很难实现它。
这是我的代码,包含数据来自的2个数组。
blind_tmp = '';
for (i=0; i<@All of Blind Relationship Link.length; i++){
blind_tmp = blind_tmp + '<p>[**' + @All of Element Title[i] + '**](' + @All of Blind Relationship Link[i] + ')'
};
需要什么简单的东西。我想要打印重复的合并记录。
例如:如果盲人关系链接是AF44
,并且在6个元素后面再次出现AF44
,那么我希望两者都像1.AF44,2.AF44
一样写
现在它正在编写元素如何出现
示例:
AF11,AF22,AF33,AF44,AF55,AF66,AF77,AF44
所以在这个例子中你看到两个AF44 我希望他们像这样写成
AF11,AF22,AF33,AF44AF44,AF55,AF66,AF77
感谢代码示例的任何帮助。
答案 0 :(得分:1)
我们的想法是遍历blindRelationshipLink
中的每个元素,并将这些元素存储在一个临时数组中,该数组将用于检查数组元素的出现次数。
var blindRelationshipLink = ['AF11','AF22','AF33','AF11','AF44','AF44','AF55','AF66','AF77','AF11','AF22','AF11'];
var arrTemp = [];
var p = '';
blindRelationshipLink.forEach(function(arr){
var count = 0;
arrTemp.forEach(function(a){
if(arr === a)
count++;
});
arrTemp.push(arr);
if(count){
count++;
arr= arr + '.' + count;
}
p = p + arr + ',';
});
alert(p);
答案 1 :(得分:0)
这种做法并不是最好的,但可能符合您的目的。
这是一个片段
var elemArray = ['AF11', 'AF22', 'AF33', 'AF44', 'AF55', 'AF66', 'AF77', 'AF44']; // Array of elements
//A new array which which will contain elements which pass our case
var finalArray = [];
elemArray.forEach(function(item) { // loop through main array
// Check if element is present or else push the element
if (finalArray.indexOf(item) == -1) {
finalArray.push(item);
} else {
// if element is there find the index
var getIndex = finalArray.indexOf(item);
// remove the element, else there will be duplicate
finalArray.splice(getIndex, 1);
//concate the matched element
var newElem = item + item;
// push the element in specfic index
finalArray[getIndex] = newElem;
}
})
console.log(finalArray)
此代码的当前缺点是,如果主阵列中存在多个重复项,将会发生什么。例如,AF33
的存在超过两次。