【发布时间】:2016-02-27 03:23:58
【问题描述】:
我正在使用 knockout.js,而我的 viewModel 是一个内部包含多维数组的对象,我无法访问特定元素。我的代码是:
var viewModel = {
states: [
new state("Virginia", [["Va Beach",[{lat:36.852926,lng:-75.977985}]], ["Chincoteague Island",[{lat:37.933179,lng:-75.378809}]]]),
new state("Maryland", [["Atlantic City",[{lat:39.364283,lng:-74.422927}]], ["Ocean city",[{lat:38.336503,lng:-75.084906}]]]),
new state("North Carolina", [["Oakacroke",[{lat:35.114615,lng:-75.98101}]], ["Nags Head",[{lat:35.957392,lng:-75.624062}]],["Emerald Isle",[{lat:34.677940,lng:-76.950776}]]])
]
};
var state = function(name, city) {
this.name = name;
this.city = ko.observableArray(city);
}
我正在尝试获取每个城市的纬度和经度。我玩过 JSON.stringify 和 filter,但无法专门隔离 lan 和 lng。
【问题讨论】:
-
在不知道
state()的情况下无法说出如何访问这些属性。 -
您可以像这样访问每个州的城市的属性:
viewModel.states[0].city[0][1][0].lat。请注意,要遍历它们,您需要两个循环,一个用于州,一个用于城市,然后使用viewModel.states[nState].city[nCity][1][0].lat
标签: javascript jquery arrays multidimensional-array knockout.js