javascript - 计算嵌套 Javascript 对象的重复属性值

标签 javascript

我正在从 API 中输入以下格式的信息 -

Records = { 0: {fields: {name: "nameExample" place: "placeExample"} }
{1: {fields: {name: "nameExample" place: "placeExample"} }

等等等等

我正在寻找一种方法来计算“地点”字段的重复项,格式为:苏格兰(4)、伦敦(6) 等,其中数字是重复的次数。

到目前为止,我得到的最接近的是计算每个地名中的字母,但我不确定我做错了什么。我认为如果我可以将它们放在同一个数组中,那么这会很简单,但是当我尝试这样做时,它会将每个位置放在不同的数组中。

还必须是普通的 javaScript,不能是 jQuery。非常感谢!

  var URL = new Array();
  URL[0] = "https://www.vam.ac.uk/api/json/museumobject/search?q=a&limit=45";
  URL[1] = "https://www.vam.ac.uk/api/json/museumobject/search?q=a&limit=45&offset=45";
  URL[2] = "https://www.vam.ac.uk/api/json/museumobject/search?q=a&limit=45&offset=90";
  var nRequest = new Array();
  for (var i=0; i<3; i++){
     (function(i) {
        nRequest[i] = new XMLHttpRequest();
        nRequest[i].open("GET", URL[i], true);
        nRequest[i].onreadystatechange = function (oEvent) {
           if (nRequest[i].readyState === 4) {
              if (nRequest[i].status === 200) {
                var data = JSON.parse(nRequest[i].responseText);
                var url = 'http://media.vam.ac.uk/media/thira/collection_images/';
                for (let key in data.records) {
                    let value = data.records[key];
                    let image = value.fields.primary_image_id;
                    let res = image.substr(0, 6);
                    document.querySelector(".map").innerHTML += '<div class="' + value.fields.place + ' map"> <a href="map.html">' + value.fields.place + '</a> <br> </div>';

            }

          } else {
                console.log("Error", nRequest[i].statusText);
              }

           }

      //

        };
        nRequest[i].send(null);

     })(i);

  };

最佳答案

如果thats the data structure你可以这样解决:

const Records = [
  {fields: {name: "nameExample", place: "placeExample"}},
  {fields: {name: "nameExample", place: "placeExample"}}
];

const result = Records.reduce((acc, {fields}) => {
  if(acc[fields.place]) acc[fields.place]++;
  else acc[fields.place] = 1;
  return acc;
}, {})

console.log(result);

关于javascript - 计算嵌套 Javascript 对象的重复属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60565526/

相关文章:

javascript - React native 网络连接在 Android 中有效,但在 IOS 中无效

javascript - 如何压缩 Yup "when"验证

javascript - 当属性更改时,Angular 服务使用 $watch 进行 $http 调用

javascript - react JS : set all values of nested object to false except for one

javascript - 无法在 ReactJS 上显示用户输入和密码的简单表单

javascript - 如何将剪切面渲染为实体对象

javascript - 在 Python 或 JavaScript 中实现 C 预处理器?

javascript - knockout 中惰性评估对象绑定(bind)的问题

javascript - 如何在 React 组件渲染之前更新 Baobab 叶子数据?

javascript - 我如何验证复选框?