Javascript 无法使用LoDash将拉到工作位置
我正在尝试使用LoDash从数组中删除对象Javascript 无法使用LoDash将拉到工作位置,javascript,underscore.js,lodash,Javascript,Underscore.js,Lodash,我正在尝试使用LoDash从数组中删除对象 var roomList = [ {id: '12345', room: 'kitchen'}, {id: '23456', room: 'lounge'}, {id: '34567', room: 'bathroom'}, ]; console.log(roomList); //outputs all 3 rooms _.pull(roomList, {id: '12345'}); console.log(roomList)
var roomList = [
{id: '12345', room: 'kitchen'},
{id: '23456', room: 'lounge'},
{id: '34567', room: 'bathroom'},
];
console.log(roomList); //outputs all 3 rooms
_.pull(roomList, {id: '12345'});
console.log(roomList); //STILL outputs all 3 rooms!
我原以为在这种情况下,\u pull
会起作用,但事实并非如此。如何使用LoDash从数组中删除对象?请尝试以下代码:
var roomList = [
{id: '12345', room: 'kitchen'},
{id: '23456', room: 'lounge'},
{id: '34567', room: 'bathroom'},
];
console.log(roomList);
_.pull(roomList, _.find(roomList, {id: '12345'}));
console.log(roomList);
请尝试以下代码:
var roomList = [
{id: '12345', room: 'kitchen'},
{id: '23456', room: 'lounge'},
{id: '34567', room: 'bathroom'},
];
console.log(roomList);
_.pull(roomList, _.find(roomList, {id: '12345'}));
console.log(roomList);
另一种方法是使用
\过滤器
roomList = _.filter(roomList, function(item) {return item.id != '12345'});
console.log(roomList);
另一种方法是使用\过滤器
roomList = _.filter(roomList, function(item) {return item.id != '12345'});
console.log(roomList);
您可以使用:
您可以使用:
它适用于数组,但不适用于对象数组。如果您检查代码,它会将数组值与您给出的值进行比较,{id:'12345'}=={id:'12345',room:'kitchen'}
将返回任何关于如何从数组中删除对象的建议?它适用于数组,但不适用于对象数组。如果您检查代码,它会将数组值与您给出的值进行比较,{id:'12345'}==={id:'12345',room:'kitchen'}
将返回关于如何从数组中删除对象的任何建议?这似乎可行,但我不确定为什么?查看文档\u find
也会返回一个对象,因此它实际上与我的代码相同。顺便说一下,谢谢。.find
返回元素和.pull
方法使用严格相等进行比较(==)。John David Dalton说您可以使用。
方法,它可能是比我的解决方案更好的解决方案。这似乎可行,但我不确定为什么?查看文档\u find
也会返回一个对象,因此它实际上与我的代码相同。顺便说一下,谢谢。.find
返回元素和.pull
方法使用严格相等进行比较(==)。John David Dalton说您可以使用.remove
方法,这可能是比我的解决方案更好的解决方案。感谢这一点,John-效果很好-我认为我必须使用带有remove
的回调。remove
和其他几种方法支持“.pull”&“.where”风格的回调速记。通过提供对象,该方法将创建一个回调,该回调将对数组中的元素执行对象的部分比较。感谢John-工作良好-我认为我必须使用带有删除.remove
的回调,其他几个方法支持“u.pull”和“u.where”风格的回调速记。通过提供对象,该方法创建一个回调,该回调将对数组中的元素执行对象的部分比较。