去年の今日はthisを投稿しました。インデックスから項目をアレイから削除する方法を短くする
私は配列から項目を索引で削除する必要があります。インデックスによって、配列が同じ値を持つかどうかは関係ありません。あなたの典型的な例:
let arr = [1,2,3,2,1] // just an array, not array with objects
let x = 1;
// This will not be an expected result:
// Find all values that is equal to 1 then remove
arr.filter(num => num !== x) //=> [2,3,2]
私の期待は、私が最後の要素(1
)を削除する場合、例えば、配列は[1,2,3,2]
する必要がありますされています
let index = 4; // which is the last "1" in the array
let indexVal = arr.indexOf(4) // 1
let newArray = arr.splice(indexVal, 1) //=> [1,2,3,2]
さて、それは2017年ですが、ほとんど'18、ありますこれを行う方法がより短い(es5/6) polyfilを使わないで?
編集:TODOとして本の
思う:
<ul>
<li>me</li>
<li>me</li> // click to delete this one
<li>you</li>
<li>me</li>
</ul>
が正しくその項目を削除するには、私はArray.filter
コールバックは2つの引数を与えないvalue
なぜインデックス上で 'indexOf'を呼び出そうとしていますか? – user2357112
これは、 'arr.splice(arr.indexOf(4)、1))の行の1行で行うことができます。' – Alex
@ user2357112私はまだ理解していますが、私は「-1」のようなものを返します。 – Sylar