Bがどのインデックスにあるかチェックする必要がありますか?どうやってBを取り除くことができますか?あなたが本当にあなたはそれがように、アレイ上delete
演算子を使用しての考えに可能性を約束している場合Cは値を使用して配列を削除するインデックスがない
let grade = ['A','B','C']
delete grade['B']; // this won't work?
console.log(grade)
Bがどのインデックスにあるかチェックする必要がありますか?どうやってBを取り除くことができますか?あなたが本当にあなたはそれがように、アレイ上delete
演算子を使用しての考えに可能性を約束している場合Cは値を使用して配列を削除するインデックスがない
let grade = ['A','B','C']
delete grade['B']; // this won't work?
console.log(grade)
、私はA、Bであるかもしれないのparamを受け取る機能を持って言う:
let grade = ['A', 'B', 'C'];
delete grade[grade.indexOf('B')];
ただし、これは実行している可能性が高いものではありません。より明確に言えば、上記の操作を['A', 'C']
に戻したいと思っています。それは実際にはありません。むしろ、インデックス1にundefined
があります(値はB
以前に存在します)。
console.log(grade);
['A', undefined x 1, 'C']
正しく配列からB
を置換するための最も適切な動作がArray#splice
を使用することであろう。例:
スプライスの2番目のパラメータが必要ですか? 1は何のために? –
@Alan Jenshen - これは 'splice'メソッドのドキュメントにあります。例:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice?v=control – RJM
はい。デフォルトでは、 'Array#splice'メソッドに2番目のパラメータが与えられていない場合、配列の長さから最初のパラメータの値をフォールバック値として使用します。この場合、それは '3 - 1 => 2'になります。したがって、 'grade.splice(grade.indexOf( 'B'))'は 'grade.splice(grade.indexOf( 'B')、2)'と同じです。両方とも ' ['A'] '。 – IsenrichO
インデックスを取得するには 'indexOf'を使用し、配列からそのインデックスの要素を削除するには' splice'を使用します。 – RJM
'grade.splice(grade.indexOf( 'B')、1); ' –