将数组中每个对象的值(如果为 0)更改为 null

jt2*_*t25 3 javascript typescript ecmascript-6

我有这个例如:

const sample = [
  { id: 1, val1: 0, val4: 10 },
  { id: 10, val1: 1, val4: 10, val19: 0, val29: 0 },
  { id: 11, val1: 0, val4: 0, val19: 0, val29: 10 },
];
Run Code Online (Sandbox Code Playgroud)

我想将每个 0 值更改为 null

const sample = [
  { id: 1, val1: null, val4: 10 },
  { id: 10, val1: 1, val4: 10, val19: null, val29: null },
  { id: 11, val1: null, any: null, sample: null, val29: 10 },
];
Run Code Online (Sandbox Code Playgroud)

我知道我需要使用,map但我很难访问每个对象。

Ifa*_*uki 5

如果您没有方法,这也可能有效。

您将其字符串化并使用替换器函数将所有零替换为null. 然后把它解析回来。

也适用于更深的嵌套对象

const sample = [
  { id: 1, val1: 0, val4: 10 },
  { id: 10, val1: 1, val4: 10, val19: 0, val29: 0 },
  { id: 11, val1: 0, val4: 0, val19: 0, val29: 10 },
];

let str = JSON.stringify(sample,(k, v) =>  v === 0 ? null : v);
let result = JSON.parse(str);

console.log(result);
Run Code Online (Sandbox Code Playgroud)