Temiz javascript diziden öğe kaldırmak için yol (jQuery ile)coffeescript
Bu konuda pek çok soru var, az değil: jQuery version of array contains, a solution with the splice method ve çok daha fazlası. Ancak, hepsi karmaşık ve can sıkıcı görünüyor.
Javascript, DV ve coffeescript Birleşik güçler ile, javascript bir diziden öğe kaldırmak için çok temiz yolu nedir? Önceden Endeksi bilmiyoruz. Kod:
a = [4,8,2,3]
a.remove(8) # a is now [4,2,3]
Bir iyi yerleşik yöntem başarısız, javascript diziler böyle bir yöntem destek için uzanan temiz bir yolu nedir? Eğer yardımı olacaksa, gerçekten ayarlar gibi diziler kullanıyorum. Çözümleri ideal güzel bir WordPress kullanmak desteği ile coffeescript çalışacak. Ayrıca, daha az hız umrumda değil, ama bunun yerine net ve basit bir kod ön planda.
CEVAP
CoffeeScript:
Array::remove = (e) -> @[t..t] = [] if (t = @indexOf(e)) > -1
Sadece pozisyon e
bulunduğu t
, Endeksi ise aslında t > -1
bulundu (varsa) eleman eklemeler. Coffeescript bu çevirir:
Array.prototype.remove = function(e) {
var t, _ref;
if ((t = this.indexOf(e)) > -1) {
return ([].splice.apply(this, [t, t - t 1].concat(_ref = [])), _ref);
}
};
Ve eğer eşleşen tüm öğeleri kaldırmak ve yeni bir dizi döndürür, CoffeeScript ve jQuery kullanarak isterseniz:
Array::remove = (v) -> $.grep @,(e)->e!=v
çeviren:
Array.prototype.remove = function(v) {
return $.grep(this, function(e) {
return e !== v;
});
};
Veya jQuery olmadan aynı şeyi grep:
Array::filterOutValue = (v) -> x for x in @ when x!=v
çeviren:
Array.prototype.filterOutValue = function(v) {
var x, _i, _len, _results;
_results = [];
for (_i = 0, _len = this.length; _i < _len; _i ) {
x = this[_i];
if (x !== v) {
_results.push(x);
}
}
return _results;
};
Nasıl diziden spesifk değeri jQuery ku...
Nasıl JavaScript bir diziden öğe kaldı...
Nasıl bir JavaScript nesnesinin bir öz...
JQuery ile JavaScript nesne için form ...
Nasıl jQuery UI iletişim kutusunda Kap...