Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从字符串数组中删除Lodash_Javascript_Lodash - Fatal编程技术网

Javascript 从字符串数组中删除Lodash

Javascript 从字符串数组中删除Lodash,javascript,lodash,Javascript,Lodash,我有一个字符串数组,希望立即删除其中一些字符串。但它不起作用 var list = ['a', 'b', 'c', 'd'] _.remove(list, 'b'); console.log(list); // 'b' still there 我猜这是因为。.remove函数接受字符串作为第二个参数,并认为这是属性名。在这种情况下,如何让lodash执行相等检查?函数\uRemove不接受字符串作为第二个参数,而是为数组中的每个值调用的谓词函数。如果函数返回true,则该值将从数组中删除 Lo

我有一个字符串数组,希望立即删除其中一些字符串。但它不起作用

var list = ['a', 'b', 'c', 'd']
_.remove(list, 'b');
console.log(list); // 'b' still there

我猜这是因为
。.remove
函数接受字符串作为第二个参数,并认为这是属性名。在这种情况下,如何让lodash执行相等检查?

函数\uRemove不接受字符串作为第二个参数,而是为数组中的每个值调用的谓词函数。如果函数返回
true
,则该值将从数组中删除

Lodas文件:

从谓词返回truthy for和的数组中移除所有元素 返回已删除元素的数组。谓词绑定到 thisArg并使用三个参数调用:(值、索引、数组)

因此,如果要从数组中删除
b
,您应该执行以下操作:

var list = ['a', 'b', 'c', 'd']
_.remove(list, function(v) { return v === 'b'; });
["a", "c", "d"]

正如朱塞佩·佩斯指出的那样,
.remove
需要一个函数。一种更直接的方法是使用
\而不是
,它直接删除元素

_.without(['a','b','c','d'], 'b');  //['a','c','d']

您还有一个选择是使用u.pull,它与u.without不同,它不创建数组的副本,而只是修改它:

_.pull(list, 'b'); // ['a', 'c', 'd']

参考:

返回值应该是v='b',而不是v!='b'@trevor编号。该编号仅与
b
匹配。我们想要的是相反的我想他们只是想根据代码中的注释删除“b”:“b仍然存在”是的,我想从我的列表中删除“b”。所以这里应该是相等的表达式,所以,我发现
\uu0.without
完全符合我的需要,但是创建了数组的副本