私はこれを手で解析することができます。私はJavaScriptでそれを行う慣用的な方法に興味があります。この配列構造を反復する方法
私に混乱を招くのは、表示されるすべての例で列のキー/値の名前があることです。そして、フィールドがない[]
、{}
で区切られています。
[
["MMM",0.0371],
["ADBE",0.0413]
]
私はこれを手で解析することができます。私はJavaScriptでそれを行う慣用的な方法に興味があります。この配列構造を反復する方法
私に混乱を招くのは、表示されるすべての例で列のキー/値の名前があることです。そして、フィールドがない[]
、{}
で区切られています。
[
["MMM",0.0371],
["ADBE",0.0413]
]
:
for (const [key, value] of JSON.parse(str)) {
}
これはfor..of
ループとarray destructuringを使用しています。以前のバージョンのJavaScriptとの互換性が必要な場合は、コードをBabelに変更してください。
@Jonasw元の質問によるとJSONは文字列です。 – 4castle
事実。この例は配列の配列で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>
< 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
destructuring assignmentを使用して、各配列をキー、値のペアとして反復することができます。データは実際に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の頭をはるかに超えているかもしれませんが、アレイとオブジェクトの違いをはっきりと理解していないようです。 –
@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帳にあなたのイントロを開いて割れや基本的なデータ構造、特に配列対オブジェクトに関する部分を見直すことをお勧めしたいです。 –
「手で解析する」とはどういう意味ですか? –