如何映射数组以进行更改?

时间:2019-05-17 10:37:37

标签: arrays reactjs

我需要映射一个对象数组

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}]

2 个答案:

答案 0 :(得分:2)

在特定情况下(仅使用abc键才能做到)

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即可轻松实现。