Javascript 删除数组中的元素,这些元素是重复的,并按顺序彼此跟随
我有一个数组,它有时有重复的元素按顺序彼此跟随。例如:Javascript 删除数组中的元素,这些元素是重复的,并按顺序彼此跟随,javascript,Javascript,我有一个数组,它有时有重复的元素按顺序彼此跟随。例如: ["<app-builder-navbar></app-builder-navbar>", "<app-builder-placeholder></app-builder-placeholder>", "<app-builder-hero></app-builder-hero>", "<app-builder-placeholder></app-
["<app-builder-navbar></app-builder-navbar>",
"<app-builder-placeholder></app-builder-placeholder>",
"<app-builder-hero></app-builder-hero>",
"<app-builder-placeholder></app-builder-placeholder>",
"<app-builder-placeholder></app-builder-placeholder>",
"<app-builder-footer></app-builder-footer>"]
我想删除所有重复元素按顺序彼此跟随的实例。因此,上述情况最终会是这样的:
["<app-builder-navbar></app-builder-navbar>",
"<app-builder-placeholder></app-builder-placeholder>",
"<app-builder-hero></app-builder-hero>",
"<app-builder-placeholder></app-builder-placeholder>",
"<app-builder-footer></app-builder-footer>"]
我下面的方法似乎有些有效,但有时会删除所有项或生成不稳定的结果集
function deleteDuplicatePlaceholders(components) {
for (let i = 0; i < components.length; i++) {
for (let j = 1; j < components.length; j++) {
if (components[i] === '<app-builder-placeholder></app-builder-placeholder>' &&
components[j] === '<app-builder-placeholder></app-builder-placeholder>') {
components.splice(i, 1);
}
}
}
}
我怎样才能解决这个问题呢?这个问题处理得相当干净。其思想是将当前元素与其前一个元素进行比较,如果它们匹配,则将其从结果中忽略。对于包含未定义的边的情况,请小心添加a.slice1可能会有所帮助 const dedupleadjacent=a=>a.filtere,i=>e!==a[i-1]; 常量占位符=[ , , , , , ];
console.logdupleadjacentplaceholder 这件事做得很干净。其思想是将当前元素与其前一个元素进行比较,如果它们匹配,则将其从结果中忽略。对于包含未定义的边的情况,请小心添加a.slice1可能会有所帮助 const dedupleadjacent=a=>a.filtere,i=>e!==a[i-1]; 常量占位符=[ , , , , , ]; console.logdupleadjacentplaceholder 我建议使用此处提到的Array.filter: filter函数只需检查当前元素是否与前一个元素相同,以及您可能需要的任何其他条件 我建议使用这里提到的Array.filter:
filter函数只需检查当前元素是否与前一个元素相同,以及您可能需要的任何其他条件 最简单的方法是将其转换为一个集合,然后再转换回一个数组:
const placeholders = Array.from(new Set([someDuplicatedValues]));
任何重复的值都将被忽略,因为集合只包含唯一的值。最简单的方法是将其转换为集合,然后再转换回数组:
const placeholders = Array.from(new Set([someDuplicatedValues]));
任何重复的值都将被忽略,因为集合只包含唯一的值。是否仅删除这些值的重复和连续实例:?或者是否要删除任何连续的值?是的,仅暂时删除,但以后可以删除任何其他连续的值。是否仅删除以下值的重复和连续实例:?或者是否要删除任何连续值?是的,只是暂时删除,但以后可以删除任何其他连续值。好主意,但这不能正确处理相邻元素。OP希望在结果中出现两次。好主意,但这不能正确处理相邻元素。OP希望在结果中出现两次。谢谢,我将如何使其仅在特定的阵列项上工作,即消除特定的.Done的重复匹配。如果有任何不合理的地方,请告诉我。谢谢,我将如何使其在特定阵列项目上工作,即消除特定的.Done的重复匹配。如果有什么不合理的地方,请告诉我。