javascript - 如果 0 为 null,则更改数组中每个对象的值

标签 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 },
];

并且我想将每个 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 },
];

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

最佳答案

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

您将其字符串化并使用替换函数将所有零替换为 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);

关于javascript - 如果 0 为 null,则更改数组中每个对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63913966/

相关文章:

javascript - 通过 h :outputScript 在资源中包含 javascript

javascript - 如何限制一个元素在一分钟内被点击的次数?

typescript - 如何在 TSLint 中启用 "error prevention only"? (禁用样式检查等)

javascript - 如何检测何时在 javascript 中设置了全局变量?

reactjs - `_Symbol.' for '` : Is that actually valid ES6? Webpack 从 React 源构建它

javascript - 何时及延期

javascript - Jest 遇到了意外的标记 - 用 jest 和 enzyme 进行 React

javascript - Firebase 不返回值(Angular 2)

javascript - 在子组件的 ngAfterViewInit() 中调用时,父组件的元素上的 getElementById 返回 null

javascript - 是否可以在 Material 表上制作所需的字段