我需要映射一个对象数组
array=[{a:'',b:firstname,c:'',d:lastname},{a:'',b:firstname,c:'',d:lastname}]
在映射时,如果数组对象的元素确实包含:”,则我将返回null,因此结果将是这样:
array=[{a:null,b:firstname,c:null,d:lastname},{a:null,b:firstname,c:null,d:lastname}]
。
答案 0 :(得分:2)
在特定情况下(仅使用a
,b
,c
键才能做到)
const newArray = array.map(({a,b,c}) => {
return {a: !!a ? a: null, b: !!b : null, !!c : c : null }
})
答案 1 :(得分:1)
您可以创建帮助器功能,以便轻松更改条件和映射。
function transform(array, mapFn) {
return array.map((obj) => {
const newObj = {};
Object.keys(obj).map(function(key) {
newObj[key] = mapFn(obj, key);
});
return newObj;
});
}
const array = [{a:'',b:"f1",c:'',d:"f2"},{a:'',b:"f3",c:'',d:"f4"}];
const newArray = transform(array, (obj, key) => {
const value = obj[key];
return value === '' ? null : value;
})
使用此方法,您可以完全控制映射功能,以后,如果您不仅需要处理empty string
,还需要处理undefined
值并将它们映射到null
,则可以通过提供更改后的mapFn
即可轻松实现。