Причины, почему селекторы на основе id не работают
Решения
$(document).ready();
.bind()
для jQuery. В старых версиях jQuery для этого было .live()
. Необходимо использовать filter
метод, а не карта, если Вы не хотите видоизменить объекты в массиве, в дополнение к фильтрации.
, например,
var filteredItems = items.filter(function(item)
{
return ...some condition...;
});
[Редактирование: Конечно, Вы могли всегда делать sourceArray.filter(...).map(...)
, чтобы и отфильтровать и видоизмениться]
Это не то, что делает карта. Вы действительно хотите Array.filter. Или если Вы действительно хотите удалить элементы из исходного списка, Вы собираетесь должны сделать это обязательно с для цикла.
Необходимо отметить однако, что эти Array.filter
не поддерживается во всем браузере так, Вы должны к смоделированному:
//This prototype is provided by the Mozilla foundation and
//is distributed under the MIT license.
//http://www.ibiblio.org/pub/Linux/LICENSES/mit.license
if (!Array.prototype.filter)
{
Array.prototype.filter = function(fun /*, thisp*/)
{
var len = this.length;
if (typeof fun != "function")
throw new TypeError();
var res = new Array();
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in this)
{
var val = this[i]; // in case fun mutates this
if (fun.call(thisp, val, i, this))
res.push(val);
}
}
return res;
};
}
И выполнение так, можно моделировать любой метод, в котором Вы, возможно, нуждаетесь.
следующее утверждение чистит объект с помощью функции карты.
var arraytoclean = [{v:65, toberemoved:"gronf"}, {v:12, toberemoved:null}, {v:4}];
arraytoclean.map((x,i)=>x.toberemoved=undefined);
console.dir(arraytoclean);
Я просто записал пересечение массива, которое правильно обрабатывает также дубликаты
https://gist.github.com/gkucmierz/8ee04544fa842411f7553ef66ac2fcf0
// array intersection that correctly handles also duplicates
const intersection = (a1, a2) => {
const cnt = new Map();
a2.map(el => cnt[el] = el in cnt ? cnt[el] + 1 : 1);
return a1.filter(el => el in cnt && 0 < cnt[el]--);
};
const l = console.log;
l(intersection('1234'.split``, '3456'.split``)); // [ '3', '4' ]
l(intersection('12344'.split``, '3456'.split``)); // [ '3', '4' ]
l(intersection('1234'.split``, '33456'.split``)); // [ '3', '4' ]
l(intersection('12334'.split``, '33456'.split``)); // [ '3', '3', '4' ]
var arr = [1, 2, 3] // синтаксис ES5 arr = arr.filter (function (item) {return item! = 3}) // синтаксис ES2015 arr = arr.filter (item => item! = 3) console.log (arr)