从对象中删除空对象,数组,字符串或整数
我有以下无效的代码段,并决定将其隔离为一个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
知道为什么我变得不确定吗?我已经用这个敲了一段时间了
回答如下:我想你快到了。我对逻辑进行了一些更改,以便如果值有效(不为nil或不为空),它将添加对象键和值
function cleanObject(params) {
let newObject = {};
Object.keys(params).forEach( key => {
console.log(params[key]);
if(!_.isNil(params[key]) || !_.isEmpty(params[key])) {
newObject[key] = params[key]
}
});
console.log('here', newObject);
return newObject;
}
从对象中删除空对象,数组,字符串或整数
我有以下无效的代码段,并决定将其隔离为一个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
知道为什么我变得不确定吗?我已经用这个敲了一段时间了
回答如下:我想你快到了。我对逻辑进行了一些更改,以便如果值有效(不为nil或不为空),它将添加对象键和值
function cleanObject(params) {
let newObject = {};
Object.keys(params).forEach( key => {
console.log(params[key]);
if(!_.isNil(params[key]) || !_.isEmpty(params[key])) {
newObject[key] = params[key]
}
});
console.log('here', newObject);
return newObject;
}