MVVMフレームワークとして現在Knockout.JSを使用しているプロジェクトを実行中です。 markersArray['Tiong Bahru Station (EWL)']
のような単純なものを使って、私の特定のmarkersArray
オブジェクトの値にアクセスするなどの基本的な操作を試しています。私は空白のために角括弧記法を使用しなければならないことを理解しています。しかし、私はconsole.logこれと、さらに私のコードでは、それは価値がありません。JavaScriptのキーによるオブジェクトプロパティへのアクセス
コードは以下の通りです:scripts.jsファイルで
JS
:maps.jsファイルで
var stationList = [
{name: "Tiong Bahru Station (EWL)", marker: markersArray['Tiong Bahru
Station (EWL)']}
console.log(markersArray['Tiong Bahru Station (EWL)']); // Returns undefined
:
var markersArray = {};
for (var i = 0; i < markers.length; i ++) {
marker = new google.maps.Marker({
position: markers[i].position,
map: map,
animation: google.maps.Animation.DROP
});
var name = markers[i].name;
markersArray[name] = marker;
}
var markers = [
{name:"Tiong Bahru Station (EWL)", position: {lat:1.28498, lng:103.82283}}
];
console.logでmarkersArrayが正しくビルドされ、正しく設定されていることを確認しました。キーを使って値にアクセスするだけで何の価値も得られない理由を理解するのに役立つでしょう。
これはあなたに何か答えを与えるのに十分なコードではありません。 markersArratyオブジェクトを満たすために反復処理するマーカー配列は何ですか?btwはオブジェクトのひどい名前です。また、script.jsが実行する前にmaps.jsがそのコードを実行していることを確認する必要があります – Dellirium
あなたは少し混乱してオブジェクトを持っているようです。 'stationList'はあなたが定義している配列ですが、' markersArray'が定義されていないので、 'stationList'の定義は失敗します。 2番目のスニペットを更新した場合、配列 'marker 'は存在しないので、それも失敗します。私はあなたが働くことを望むスニペットを作って、コミュニティが助言できることを提案する。 – user3094755
私は新しいコードで追加しました。そうです、maps.jsはscripts.jsより前に実行されます。私はscripts.jsのconsole.log(markerArray)することができ、私はオブジェクト全体を見ることができます。うん、私はオブジェクトの名前を変更し、周りを遊んでいたので、命名規則を忘れてしまった。 lol – bryancresswell