我的目标是根据特定条件将 JSON 对象添加到数组中,然后将其用于构造 WINJSList。使用 array.push 方法后,我真的很难访问列表或数组的元素。我想访问这些元素以确保我的加法正确。任何帮助将不胜感激。我有以下代码
var names_Array = new Array;
var names_List = new WinJS.Binding.List(names_Array);
if (condition) {
if (condition) {
names_List.push({
name: "Joe Dowling",
image: "image/Joe Dowling.png",
ClientID: "1234"
});
} else if (condition) {
names_List.push({
name: "Esteban Flamenco ",
image: "image/Esteban Flamenco.png",
ClientID: "6666"
});
} else if (condition) {
names_List.push({
name: "Plain Jane ",
image: "image/Plain Jane.png",
ClientID: "0000"
});
}
console.log(names_Array);
console.log(names_Array[0]);
console.log(names_List);
console.log(names_List[0]);
我也尝试过:
var names_Array = new Array;
if (condition) {
if (condition) {
names_Array.push({
name: "Joe Dowling",
image: "image/Joe Dowling.png",
ClientID: "1234"
});
} else if (condition) {
names_Array.push({
name: "Esteban Flamenco ",
image: "image/Esteban Flamenco.png",
ClientID: "6666"
});
} else if (condition) {
names_Array.push({
name: "Plain Jane ",
image: "image/Plain Jane.png",
ClientID: "0000"
});
}
var names_List = new WinJS.Binding.List(names_Array);
在控制台中,我要么未定义,要么得到 [object object]
最佳答案
对于 WinJS.Binding.List,请参阅文档 here 。
代码存在几个问题:
- WinJS List 使用传递给构造函数的数组来初始化自身。此后,如果数组被修改,更改不会传播到 winjs 列表。
- 要访问索引处的元素,请使用
list.getAt(index)
这段代码应该可以工作:
var data = [];
data.push({
name: "Joe Dowling",
image: "image/Joe Dowling.png",
ClientID: "1234"
});
data.push({
name: "Esteban Flamenco ",
image: "image/Esteban Flamenco.png",
ClientID: "6666"
});
data.push({
name: "Plain Jane ",
image: "image/Plain Jane.png",
ClientID: "0000"
});
var list = new WinJS.Binding.List(data);
var item = list.getAt(0);
console.info(JSON.stringify(item))
关于javascript - 在javascript中将JSON对象添加到多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16811145/