用javascript遍历映射中的数组
Iterate through an array in a map in javascript
我是javascript的新手,我很难理解如何使用键数组来提取映射,然后从映射中的数组中提取值,而不完全重新创建映射。我的两个数据结构看起来像。
var keys = ["key1","key2","key3"]
var data = {
"key1": {
"target": "hostname",
"datapoints": [
[12, 1.42472334E9],
[13, 1.424723355E9],
[14, 1.42472337E9]]},
"key2": {
"target": "hostname",
"datapoints": [
[15, 1.42472334E9],
[16, 1.424723355E9],
[17, 1.42472337E9]]}}
我正试图提取数据点,将它们放入两个数组中,以便根据关键字进行绘图。尝试像一样迭代
for (var k in key)
for (var v in data[key][datapoints])
显然不是正确的方法。有没有更好的方法可以在不撕裂地图的情况下获得数据?
打开浏览器javascript控制台(按F12)查看演示中的输出。
jsfiddle演示
var keys = ["key1","key2","key3"]
var data = {
"key1": {
"target": "hostname",
"datapoints": [
[12, 1.42472334E9],
[13, 1.424723355E9],
[14, 1.42472337E9]]},
"key2": {
"target": "hostname",
"datapoints": [
[15, 1.42472334E9],
[16, 1.424723355E9],
[17, 1.42472337E9]]}
}
//loop through the array named keys (mind that k is an index/integer)
for (var k in keys){
//check if data has "key" as property (ie: key3 does not exist in data)
if(data.hasOwnProperty(keys[k])){
//loop through the array datapoints which is a property of the object named data
for ( var i =0; i< data[keys[k]]["datapoints"].length; i++){
console.log(data[keys[k]]["datapoints"][i]); //outputs an array with 2 elements
}
}else{console.log(keys[k]+" does not exist in data")}
}
若您想要一个数据点数组,可以执行类似data.key1.datapoints[0]
的操作。这将为您提供一个存储在key1下的数据点数组。
您可以循环遍历数组keys
,然后提取datapoints
,如下所示:
for (var i=0; i < keys.length; i++) {
var datapoints = data[keys[i]].datapoints;
// do whatever you want to do with the datapoints.
// It's not clear from your question.
}
相关文章:
- 无法通过数组映射绑定
- React Native数组映射与多维数组
- 在JavaScript中搜索数组映射的最有效方法
- Undercore将对象的数组映射到以id为键的新对象
- 将一个外部二维数组映射到另一个二维数组(javascript)
- 如何将一个javascript数组映射到另一个具有不同字段名称的数组
- 数组映射和筛选顺序
- 如何使用 JavaScript 将此数组映射到新格式
- 使用 lodash 是将数据从数组映射到单个数组的好方法
- 将 json 数组中的数组映射到 Angularjs 范围
- 如何使用哈希图或数组映射返回总数最高的类别
- 当某些数据是可选的时,使用数组映射
- JavaScript 将数组映射到对象属性
- 角度中的数组映射错误
- 将数组映射变量替换为实际的变量名称/字符串
- 在用数组填充初始化的数组上使用数组映射的意外行为
- JavaScript 数组映射函数不会更改字符串中的元素
- 将 JSON 数组映射到 KO 抛出错误
- javascript 数组映射与应用
- 从 JQuery 中的字符串创建数组映射