我可以手工解析这个。我对在JavaScript中使用它的惯用方式感兴趣。如何遍历这个数组结构
让我感到困惑的是,我看到的所有示例都有一个列的键/值名称。而且,该字段由{}
分开,不[]
:
[
["MMM",0.0371],
["ADBE",0.0413]
]
我可以手工解析这个。我对在JavaScript中使用它的惯用方式感兴趣。如何遍历这个数组结构
让我感到困惑的是,我看到的所有示例都有一个列的键/值名称。而且,该字段由{}
分开,不[]
:
[
["MMM",0.0371],
["ADBE",0.0413]
]
在ES6你可以写:
for (const [key, value] of JSON.parse(str)) {
}
它使用array destructuring有for..of
循环。如果您需要与较旧版本的JavaScript兼容,请将您的代码用Babel进行编码。
@Jonasw原来的问题说这是JSON,这是一个字符串。 – 4castle
如果其实。这个例子是Javascript
中的一个数组Array。
<!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>
在< ES6你可以写:
var arr = /* your array */;
for(var i = 0; i < arr.length; i++){
var key = arr[i][0],
value = arr[i][1];
// do things with `key` and `value`
}
您可以使用forEach方法
var arr = [
["MMM",0.0371],
["ADBE",0.0413]
]
arr.forEach(function(v1){
v1.forEach(function(v2){
console.log(v2)
})
})
注意:'.forEach'不是一个“迭代器”。 [This](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#Iterators)是一个迭代器。 –
对。更改了答案 – Aleeeeee
您可以使用解构赋值将每个数组迭代为键值对。如果数据实际上是JSON
而不是JSON
第一
[
["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)
})
这可能稍微超过了OP的头,他似乎没有清楚地理解数组和对象之间的区别。 – 2017-08-11 16:17:58
@torazaburo可能。 OP现在有能力从提供的答案中学习。希望澄清与数组(或对象)的明显单个元素相关的语法'[key,value]'被称为解构赋值。 – guest271314
一个JavaScript对象调用JSON.parse()
使用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])
}
我建议再次开裂打开你介绍给JS书和审查有关基本的数据结构,尤其是数组与对象的部分。 – 2017-08-11 16:14:16
你是什么意思的“手工解析”? – 2017-08-11 16:19:46