【问题标题】:Make a two-dimensions (bidimensional) matrix in javascript provided by JSON在 JSON 提供的 javascript 中制作二维(二维)矩阵
【发布时间】:2014-11-03 16:28:01
【问题描述】:

我想从 JSON 中获取数据并使用 JavaScript 将其放入二维矩阵中。

我在 JSON 中得到我的值,如下所示:

$(data).each(function(index,value){ // for each
  //getting my data values. Example: EU-New York
  var option = value.split('-'); // spliting by '-'
  var country = option[0]; // getting country
  var city = option[1]; // city

  // Here save to Javascript variable. For each Country, N cities.
}

示例以便更好地理解。 每个国家,N 个城市

country1 > city1
         > city2
         > city3

country2 > city1
         > city2

有没有办法制作一个二维矩阵并将其临时保存在 Javascript 变量中?

【问题讨论】:

  • 什么意思?听起来您可能想要一本包含城市列表的国家/地区的字典?确切地说,您所说的“保存”是什么意思?你的意思是只保存在内存中?还是实际保存到持久存储?
  • 感谢@MattBurland 我正在寻找保存或分配给变量。与您在答案中所做的相同。谢谢!

标签: javascript json parsing matrix


【解决方案1】:

你在寻找这样的东西吗?

// Some mock data so we have something to play with
var data = [
  "US-New York",
  "US-Chicago",
  "UK-London",
  "UK-Manchester"
];

var dict = {};

$.each(data, function(i, item) {
      var split = item.split("-");
      if (!dict.hasOwnProperty(split[0])) {
          dict[split[0]] = [];
        }
        dict[split[0]].push(split[1]);

      }); 

console.dir(dict);

// stringified just so you can see what's happening.
alert(JSON.stringify(dict));

// example: get all cities in the US
alert(dict["US"]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

这会将data 转换成这样的对象:

{
    "US": [
        "New York",
        "Chicago"
    ],
    "UK": [
        "London",
        "Manchester"
    ]
}

如果你想要所有的US 城市,你可以像这样得到它们:

var citiesInUS = dict["US"];

甚至:

var citiesInUS = dict.US;

【讨论】:

  • 感谢@MattBurland 的帮助。我会在我的代码中尝试一下。
最近更新 更多