我可以手工解析這個。我對在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