2

私は次のような変数を持っています:

var dataset = {
"towns": [
    ["Aladağ", "Adana", [35.4,37.5], [0]],
    ["Ceyhan", "Adana", [35.8,37], [0]],
    ["Feke", "Adana", [35.9,37.8], [0]]
    ]
};

変数には多くの町のデータが含まれています。データから3番目の要素の最初の要素を効率的に抽出するにはどうすればよいですか?つまり、以下は何に...なりますか?

var myArray = ...
//myArray == [35.4,35.8,35.9] for the given data 

そして、両方の値を配列に格納したい場合はどうすればよいですか?あれは

var myArray = ...
//myArray == [[35.4,37.5], [35.8,37], [35.9,37.8]] for the given data 

私はJavascriptを初めて使用します。forループを使わない方法があるといいのですが。

4

2 に答える 2

8

新しいブラウザでは、、mapまたはループforEachの使用を回避するを使用できます。for

var myArray = dataset.towns.map(function(town){
  return town[2];
});
// myArray == [[35.4,37.5], [35.8,37], [35.9,37.8]]

ただし、forループの方が互換性があります。

var myArray = [];
for(var i = 0, len = dataset.towns.length; i < len; i++){
  myArray.push(dataset.towns[i][2];
}
于 2012-12-29T16:16:49.167 に答える
2

ループなしでは不可能:

var myArray = [];
for (var i = 0; i < dataset.towns.length; i++) {
    myArray.push(dataset.towns[i][2][0]);
}
// at this stage myArray = [35.4, 35.8, 35.9]

そして、両方の値を配列に格納したい場合はどうすればよいですか?

同様に、最初の要素だけでなく、配列全体を追加するだけです。

var myArray = [];
for (var i = 0; i < dataset.towns.length; i++) {
    myArray.push(dataset.towns[i][2]);
}
// at this stage myArray = [[35.4,37.5], [35.8,37], [35.9,37.8]]
于 2012-12-29T16:17:00.757 に答える