Javascript:如果没有找到键,则在 json 数组中查找并推送到数组对象

标签 javascript angularjs

我有一个 json 数组:

  0: {Id: "1", name: "Adam", Address: "123", userId: "i98"}
  1: {Id: "2", name: "John", Address: "456"}

现在在上面的数组中,第二个没有可用的 userId 键。

我如何遍历上述数组并检查是否没有可用的 userId 键然后添加值为 0 的键。例如添加 userId:“0”

我试过的是:

let jsonData = JSON.parse(JSON.stringify(userData));

 for (const obj of jsonData) {
    var hasId = false;
      let objId = obj.find((o, i) => {
         if (o.userId === "userId") {
          hasId = true;
        }
      });
      if (!hasId) {
         obj.push();
       }
    }

但这给了我错误:

obj.find is not a function

解决我的问题并将键值推送到数组的任何输入。

最佳答案

在您的代码中,obj 是一个对象,对象上没有find 方法。如果你想检查一个对象是否有一个数组,你可以 if( obj.userId )

您可以使用forEach 遍历数组。

let jsonData  = [{Id: "1", name: "Adam", Address: "123", userId: "i98"},{Id: "2", name: "John", Address: "456"}];

jsonData.forEach(o => {
  o.userId = o.userId || 0; //Assign 0 if userId is undefined.
})

console.log(jsonData);

关于Javascript:如果没有找到键,则在 json 数组中查找并推送到数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51561652/

相关文章:

javascript - 循环中的一年中的某一天

Javascript - 绘制曲线矩形的函数

javascript - JS 运行函数在多暗淡对象中失败..不确定这是否可能

html - 如何在angularjs中刷新html Canvas 指令

javascript - 如何使用 Angular 形式使用模糊事件?

javascript - $http 响应 Set-Cookie 不可访问

javascript - Material design : change select action for the whole tab button,不仅用于标签

javascript - 错误 : window. 工具栏在 Google Chrome 应用程序中的打包应用程序中不可用

javascript - ng-bind 但存储内部值

angularjs - AngularJS:2 x <tr>的ng-repeat-无法使用DIV