インデックスから特定の要素を配列から削除するデモを作成しました。splice()を使用する前後の結果配列の取得
var splice_a = function (array, index) {
array.splice(index, 1);
return array
};
var splice_b = function (array, index) {
return array.splice(index, 1)
};
var test = function() {
var array = [1, 2, 3];
alert(splice_a(array, 1));
alert(splice_b(array, 1));
};
<button onclick="test()">Click me</button>
Array.prototype.splice()return value
についてこう述べています。
削除された要素を含む配列。 1つの要素が の場合、1つの要素の配列が返されます。 の要素が削除されていない場合は、空の配列が返されます。
結果の配列を取得したい場合は、キーワードreturn
と組み合わせる必要がありますか?私は2差の結果を取得していますので、
それはケースのようになります。
1,3
私の質問:のは、このケースでreturn array.splice(index, 1)
で起こる何?
はい、あなたは関数がその値を返すようにしたい場合は、値を 'return'キーワードを使用する必要があります。 – Malk
私はあなたがここで誤解しているものは見ません。投稿したコードスニペットは、MDNで説明したのと同じ動作を示します。 'Array.prototype.splice'の結果を返すと、元の配列ではなく、削除された要素の配列を取得します。 – Damon
@Damonあなたは私の質問を読んだことがありますか?同じ振る舞いですが、違いは2つです。 –