如何迭代这个数组结构

时间:2017-08-11 16:00:51

标签: javascript

我可以手工解析这个问题。我对在JavaScript中使用它的惯用方法感兴趣。

令我困惑的是,我看到的所有示例都有列的键/值名称。而且,字段由{}分隔,而不是[]

[
  ["MMM",0.0371],
  ["ADBE",0.0413]
]

4 个答案:

答案 0 :(得分:1)

如果事实。此示例是Javascript中的数组数组。



<!DOCTYPE html>
<html>
<body>

<p>Access an array value of a JSON object.</p>

<p id="demo"></p>

<script>

var myObj, x;
myObj = [
  ["MMM",0.0371],
  ["ADBE",0.0413]
]
;
x = myObj[0][0];
document.getElementById("demo").innerHTML = x;

</script>

</body>
</html>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用forEach方法

var arr = [
  ["MMM",0.0371],
  ["ADBE",0.0413]
]

arr.forEach(function(v1){
  v1.forEach(function(v2){
    console.log(v2)
  })
})

答案 2 :(得分:1)

您可以使用解构赋值将每个数组迭代为键值对。如果数据实际上是JSON,而不是首先在JSON.parse()上调用JSON的JavaScript对象

[
  ["MMM", 0.0371],
  ["ADBE", 0.0413]
]
.forEach(([key, value]) => {
  console.log(key, value)
})

JSON.parse('[["MMM", 0.0371],["ADBE", 0.0413]]')
.forEach(([key, value]) => {
  console.log(key, value)
})

答案 3 :(得分:0)

使用ES5这可能是您浏览器不一致的最佳选择,您可以使用for循环或foreach。还可以根据您的目的进行映射,过滤,缩小。

小提琴

var arr = [
  ["MMM",0.0371],
  ["ADBE",0.0413]
]


arr.forEach(function (el) {
  console.log(el[0])
  console.log(el[1])
})


// This will convert it to key value pairs
var keyvaluearr = arr.map(function (el) {
  return {
    name: el[0],
    value: el[1]
  }
})

console.log(keyvaluearr)

for(var i = 0; i < arr.length; i++) {
  var el = arr[i]
  console.log(el[0])
  console.log(el[1])
}