2017-08-04 44 views
0

以下代碼旨在搜索並從數組中刪除元素,但不起作用。javascript:Lodash拒絕查詢

console.log(_.reject(['x','b','a1','ggg'],function(k){k==='x'})) 

期待

[ 'b', 'a1', 'ggg' ] 

但收到的,

[ 'x', 'b', 'a1', 'ggg' ] 

代替。

x從來沒有被刪除,任何線索?

回答

1

你缺少一個return語句在predicate

而不是

_.reject(['x','b','a1','ggg'],function(k){k==='x'})

嘗試

_.reject(['x','b','a1','ggg'],function(k){ return k==='x'})

4

您缺少return。退房documentation for reject

_.reject(['x','b','a1','ggg'], function(k) { 
    return k === 'x'; 
}); 

在ES6,您可以使用箭頭語法來避免明確包括return,但與普通函數的語法你必須返回一個值。

// ES6 
_.reject(['x','b','a1','ggg'], (k) => k === 'x'); 

// ES5 
_.reject(['x','b','a1','ggg'], function(k) { 
    return k === 'x'; 
}); 
+0

我upvoted你的答案,因爲你給箭頭語法惡魔登記領 –