【发布时间】:2020-02-01 08:51:57
【问题描述】:
我有以下 sn-p 不起作用,并决定将其隔离到 nodejs 脚本中:
const _ = require('lodash');
let derpObject = {
foo: "hey",
bar: "",
foo2: [],
bar2: {}
}
function cleanObject(params) {
const newObject = Object.keys(params).forEach( key => {
console.log(params[key]);
if(_.isNil(params[key]) || _.isEmpty(params[key])) {
delete params[key]
}
});
console.log('here', newObject);
return newObject;
}
let result = cleanObject(derpObject);
console.log(result);
基本上,我的目的是检查主对象中哪些属性为空或 null 并删除它们,最后返回仅具有非空/null 属性的新对象。
但是,运行上面的脚本输出:
hey
[]
{}
here undefined
undefined
=> undefined
知道为什么我会变得不确定吗?我一直在用这个敲打我的头一段时间了
【问题讨论】:
-
forEach不返回任何内容 -
你正在改变原始对象,所以只需
return params -
为什么不利用 Lodash 功能:
_.filter(derpObject, (e) => !_.isEmpty(e)).
标签: javascript node.js object ecmascript-6