gpt4 book ai didi

javascript - 我尝试根据传递给函数的两个参数将字符串缩短两个字符。如何?

转载 作者:行者123 更新时间:2023-11-29 17:34:48 25 4
gpt4 key购买 nike

我有一个字符串,比如“Antonello”。我想要一个将它缩短两个字符的函数(我作为参数传入),例如0、8 应导致“ntonell”。

这是我试过的代码:

function strCut(str, index, index2) {
debugger;
var arr = []

for(var i=0; i<str.length;i++) {
if(index != i || index2 != i) {
arr.push(str[i]);
}
}
return arr.join("");
}

我假设如果 0(传入)不等于循环的 i,它将评估为真,因此将字符串索引插入数组(然后我将其转换为字符串。

但是,strCut('Antonello', 0,8) 生成完整的字符串“Antonello”。为什么?

最佳答案

您需要使用&& 而不是||

当您使用|| 时,这意味着如果i 不等于index1 不等于到 index2。这将始终评估为 true。考虑 iindex1 然后 index2 !== itrue 并且整个表达式将变为 true。

function strCut(str, index, index2) {
var arr = []

for(var i=0; i<str.length;i++) {
if(index !== i && index2 !== i) {
arr.push(str[i]);
}
}
return arr.join("");
}

console.log(strCut("Antonello", 0, 8))

要删除两个以上的索引,您可以使用剩余参数和 filter()

function strCut(str, ...indexes) {
indexes = new Set(indexes);
return [...str].filter((x, i) => !indexes.has(i)).join('');
}

console.log(strCut("Antonello", 0, 8, 1))

您也可以使用 substring 来实现,但会有点困惑。传递的索引也应该是有序的。

function strCut(str, index, index2) {
return str.substring(0, index) + str.substring(index + 1, index2) + str.substring(index2 + 1, str.length);
}

console.log(strCut("Antonello", 1, 4))

关于javascript - 我尝试根据传递给函数的两个参数将字符串缩短两个字符。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57842816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com