「アントネッロ」と言う文字列があります。2文字(パラメーターとして渡す)短縮する関数が必要です。たとえば、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と等しくない場合、trueと評価されるため、文字列インデックスを配列にプッシュすると仮定しました(次に文字列に変換します。
ただし、strCut('Antonello', 0,8)
結果は完全な文字列「Antonello」になります。どうして?
の&&
代わりにを使用する必要があります||
。
あなたは使用する場合||
、それがあればということを意味しi
ているに等しいではないindex1
か、ないに等しいですindex2
。これは常にに評価されtrue
ます。考えてみましょi
ありindex1
、その後index2 !== i
になる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))
削除するインデックスが2つ以上ある場合は、残りのパラメーターと 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))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加