我需要替换具有空值的主数组中的嵌套数组,比如让我们说[null, null],或者用字符串值替换为空的嵌套数组,比如"empty".
假设我们有以下数组:
array = [
{
id: 123,
name: 'Peter',
phone: [null, null],
addresses: [{ address1: 'Manchester, UK', address2: 'London, UK' }]
},
{
id: 124,
name: 'Sara',
phone: [],
addresses: [{ address1: 'London, UK', address2: 'Paris, FR' }]
}
];
我们看到,第一个数组有 phone:[null, null]而第二个有它 as []。我需要做什么才能将它们转换为以下内容:
array = [
{
id: 123,
name: 'Peter',
phone: "empty",
addresses: [{ address1: 'Manchester, UK', address2: 'London, UK' }]
},
{
id: 124,
name: 'Sara',
phone: "empty",
addresses: [{ address1: 'London, UK', address2: 'Paris, FR' }]
}
];
这是一个示例,每个数组可能包含多个嵌套数组,它们具有相同的[null, null]or []。
我尝试了以下方法:
var filtered = this.array.map(subarray => subarray.filter(el => el != null));
从这个Stack Overflow 答案,但我有一个错误说:
错误:subarray.filter 不是函数
然后我尝试使用lodash's every()andisNull方法和属性的第二种方法,但无法弄清楚:
let props = [];
props = Array.from(new Set(this.array.flatMap(e => Object.keys(e), [])));
console.log(props)
for (const prop of props) {
this.array.forEach(e => {
if ((Array.isArray(e[prop]) || typeof(e[prop]) === 'object') && e[prop]._.every(_.isNull)) {
console.log(e)
}
});
}
我在 Stack Overflow 上搜索了几个问题,但数组的结构类似于:[ [1, 2], [1,3]...]而不像我的数组结构[{...}, {...}],所以我尝试了一些解决方案并得到了与上述方法 1 相同的错误。
喵喵时光机
慕莱坞森
相关分类