javascript 連想配列 CoffeeScriptで配列から値を削除する




javascript 配列 特定の要素 (7)

filter()もオプションです:

arr = [..., "Hello", "World", "Again", ...]

newArr = arr.filter (word) -> word isnt "World"

私は配列を持っています:

array = [..., "Hello", "World", "Again", ...]

「World」が配列内にあるかどうかを確認するにはどうすればよいですか? それがあれば削除しますか? そして "世界"への言及を持っていますか?

場合によっては、ある単語を正規表現とマッチさせたい場合、正確な文字列がわからないので、一致するStringへの参照が必要になることがあります。 しかし、この場合、私はそれがより簡単になる「世界」だと確信しています。

提案していただきありがとうございます。 私はそれを行うためのクールな方法を見つけた:

http://documentcloud.github.com/underscore



CoffeeScript + jQuery:すべてではなく1つを削除

arrayRemoveItemByValue = (arr,value) ->
  r=$.inArray(value, arr)
  unless r==-1
    arr.splice(r,1)
  # return
  arr

console.log arrayRemoveItemByValue(['2','1','3'],'3')

underscorejsライブラリの_.without()関数は、新しい配列を取得したい場合に便利でクリーンなオプションです:

_.without([1, 2, 1, 0, 3, 1, 4], 0, 1)
[2, 3, 4]

いくつかの答えの組み合わせ:

Array::remove = (obj) ->
  @filter (el) -> el isnt obj

これを試して :

filter = ["a", "b", "c", "d", "e", "f", "g"]

#Remove "b" and "d" from the array in one go
filter.splice(index, 1) for index, value of filter when value in ["b", "d"]

「World」が配列されているかどうかを確認する:

"World" in array

存在する場合は削除する

array = (x for x in array when x != 'World')

または

array = array.filter (e) -> e != 'World'

参照を保持する(これは私が見つけた最も短いものです。!.pushは.push> 0なので常にfalseです)

refs = []
array = array.filter (e) -> e != 'World' || !refs.push e




coffeescript