В связи с этим вопросом, я хотел попробовать этот
var arr = [0,1,2,true,4,{"abc":123},6,7,{"def":456},9,[10]];
arr.filter(Object.hasOwnProperty,"abc");//outputs [0, 1, 2]
arr.filter(Object.hasOwnProperty,"2222222") //[0, 1, 2, 4, 6]
Кто-нибудь знает, почему фильтр возвращает эти значения? Спецификация фильтра и MDN doc также не ясно, как используется второй аргумент фильтра.