我正在尝试使用LoDash从数组中删除对象。
在server.js(NodeJS)
中var lodash = require('lodash')();
var rooms = [
{ channel: 'room-a', name: 'test' },
{ channel: 'room-b', name: 'test' }
]
我要尝试两个命令而不是工作:
var result = lodash.find(rooms, {channel: 'room-a', name:'test'});
var result = lodash.pull(rooms, lodash.find(rooms, {channel: 'room-a', name:'test'}));
在console.log(结果)中:
LodashWrapper {
__wrapped__: undefined,
__actions__: [ { func: [Function], args: [Object], thisArg: [Object] } ],
__chain__: false,
__index__: 0,
__values__: undefined }
有人能帮助我吗?谢谢!
答案 0 :(得分:14)
_.remove()是个不错的选择。
var rooms = [
{ channel: 'room-a', name: 'test' },
{ channel: 'room-b', name: 'test' }
];
_.remove(rooms, {channel: 'room-b'});
console.log(rooms); //[{"channel": "room-a", "name": "test"}]

<script src="https://cdn.jsdelivr.net/lodash/4.14.2/lodash.min.js"></script>
&#13;
答案 1 :(得分:6)
在这种情况下我会去reject()。更少的代码:
var result = _.reject(rooms, { channel: 'room-a', name: 'test' });
答案 2 :(得分:3)
lodash
调用()
函数(undefined
)会创建一个包裹lodash
的LoDash对象。
那不是你想要的;你想要QRegExp kcc_stationing("(-)?(\\d+)\\.(\\d+)[^a-zA-Z]");
QString str;
if (kcc_stationing.indexIn(description) > -1)
{
str = kcc_stationing.cap(1) + kcc_stationing.cap(2) + "." + kcc_stationing.cap(3);
qDebug() << kcc_stationing.cap(1);
qDebug() << kcc_stationing.cap(2);
qDebug() << kcc_stationing.cap(3);
qDebug() << "Description: " << description;
qDebug() << "Returned Stationing string: " << str;
}
函数本身,它包含静态方法。
删除它。