これは意図した動作ですか?空の配列がここに返されると思います。配列に要素が1つしかない場合、なぜarray.splice()が機能しないのですか?
はJavaScript
let arr = [1];
console.log(arr.splice(0, 1))
コンソール
1
これは意図した動作ですか?空の配列がここに返されると思います。配列に要素が1つしかない場合、なぜarray.splice()が機能しないのですか?
はJavaScript
let arr = [1];
console.log(arr.splice(0, 1))
コンソール
1
それはあなたの場合には、[1]である、削除されたものを返すため。電話後にarr
が空になります。
let arr = [1];
arr.splice(0, 1);
console.log(arr);
ohh私はそれが変更された配列を返したと思った –
スプライス()メソッドは 既存の要素を除去すること、および/または新たな要素を追加することによって、配列の内容を変更します。 Reference
このメソッドの構文は次のとおりです。あなたが2番目の構文を使用して、0番目のインデックスで開始し、1を削除したいことを意味しdeleteCount
としてスタートとして0
と1
を渡している
array.splice(start)
array.splice(start, deleteCount)
array.splice(start, deleteCount, item1, item2, ...)
item(配列の値として1ではありません)。
このメソッドは、削除された要素を含む配列を返します。 1つの要素だけが削除された場合は、1つの要素の配列が返されます。要素が削除されない場合、空の配列が返されます。
この場合、結果は[1]
です。つまり、今削除したばかりのアイテムの値が1
の配列です。
正しい結果である '1'を返します。 –
しかし、インデックス0から開始して1つのアイテムを削除すると、空の配列が返されないのはなぜですか? –
'splice()'は元の配列から 'spliced/cut/removed'された値を返します。 'console.log(arr)'を試してください。それが空であることがわかります。 –