提取特定的 JSON 对象并推送到新对象

Extracting specific JSON object and pushing to new object

本文关键字:对象 新对象 JSON 提取      更新时间:2023-09-26

嘿伙计们,我有一个看起来有点像这样的obj。

[
    {
        "app": 1,
        "scalable": true,
        "zoomable": true,
        "cropBoxResizable": true
    },
    {
        "app": 2,
        "scalable": false,
        "zoomable": true,
        "cropBoxResizable": false
    }
]

我正在尝试基本上是提取与特定应用程序相关的对象数据并保存到第二个对象。例如,如果 app = 1,那么 newObj 将是这样的

var newObj = {
        "app": 1,
        "scalable": true,
        "zoomable": true,
        "cropBoxResizable": true
    }

有没有办法让这种 json 格式更好?我也对此持开放态度。我只是想找出最优化的方法来解决这个问题。

谢谢。

您需要

遍历数组并检查app相等

var arr = [ { "app": 1, "scalable": true, "zoomable": true, "cropBoxResizable": true }, { "app": 2, "scalable": false, "zoomable": true, "cropBoxResizable": false } ]
function extract(a, app) {
    var length = a.length;
    for(var i = 0; i < length; i++){
        if (a[i].app === app) {
            return a[i];
        }
    }
}
var newObj = extract(arr, 2)
console.log(newObj);

结果:

{ app: 2,
  scalable: false,
  zoomable: true,
  cropBoxResizable: false }

试试这段代码,这是最简单的方法

var source = [
    {
        "app": 1,
        "scalable": true,
        "zoomable": true,
        "cropBoxResizable": true
    },
    {
        "app": 2,
        "scalable": false,
        "zoomable": true,
        "cropBoxResizable": false
    }
];
for (var i = 0; i < source.length; i++) {
    if (source[i].app == "1") {
         console.log(source[i]);
    };
};

如果我理解得很好,最好将对象用作容器而不是数组。

const src = { "1": // this is app name
  {
    "scalable": true,
    "zoomable": true,
    "cropBoxResizable": true
  },
  "2":
  {
    "scalable": false,
    "zoomable": true,
    "cropBoxResizable": false
  }      
};

所以然后只是const appData = src['1'];