【发布时间】:2016-11-11 21:31:30
【问题描述】:
当数组元素与字符串的其他元素部分匹配时,我需要从数组中删除一个元素,删除该元素。
例如,
var res1 = [
" Proj -> Phase-1 -> Tower-1 -> Floor-2 ",
" Proj -> Phase-2 ",
" Proj -> Phase-2 -> Tower-1 " ];
即如果我的
res1[2]="Proj->Phase-2->Tower-1"
和
res1[1]="Proj->Phase-2"
res1[1] 部分匹配 res1[2]。所以我需要删除res1[2]。之后我想要剩余的数组值。但它不能正常工作。
这是我尝试过的,但没有得到我期望的结果:
for (i = 0; i < res1.length; i++) {
for (j = 0; j < res1.length; j++) {
if (res1[i] != res1[j]) {
if (res1.indexOf(res1[j]) === 0) {
console.log(res1);
console.log(res1[j]);
delete res1[i];
}
}
}
}
即如果 string1 "Proj->Phase-2" 恰好在 string2 "Proj->Phase-2->Tower-1" 中,则需要删除 string2。即使一个 string3 "Proj->Phase-1->Tower-1" 与 string1 相比,也不完全相同。所以它不应该被删除
【问题讨论】:
-
for(i=0;i
-
@Sahithya 您还需要将代码(您尝试过的)放入原始问题中。此外,目前尚不清楚您打算做什么。您是否希望最终结果具有唯一的前缀?在这种情况下,您的所有项目都具有与
proj相同的前缀,难道不应该确保删除所有其他项目吗?请为每个测试用例分享足够的测试数据和预期的输出
标签: javascript arrays