如果可以将数组传递给像这样的JavaScript对象,请告诉我吗?
var content = {
item1: "John",
item2: "Doe",
item3: { "item3_1", "item3_2", "item3_3" }
}
console.log(content);
您能告诉我如何访问或更新这些项目吗?如果没有,请告诉我如何创建数据格式(例如Array of Array)来存储这些数据?
答案 0 :(得分:2)
在JavaScript对象上定义数组的语法如下所示:
var content = {
item1: "John",
item2: "Doe",
item3: ["item3_1", "item3_2", "item3_3"]
};
你没有"传递"将数组放入对象中,您只需将其中一个属性定义为数组即可。内部的任何嵌套数据都采用与对象或另一个数组相同的形式:
var foo = {
arr: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
};
要记住的重要一点是你使用' {}'对于对象语法,' []'用于数组语法。您还可以在该数组中包含对象:
var bar = {
obj_arr: [
{
name: "Tim",
age: 14,
},
{
name: "Bob",
age: 36
},
{
name: "Sue",
age: 73
}
]
};
要从数组属性访问其中一个元素,请使用以下语法:
content.item3[0] for "item3_1"
content.item3[1] for "item3_2"
或者,或者:
content["item3"][0] for "item3_1"
content["item3"][1] for "item3_2"
虽然在提前知道属性名称时这种语法不常见。要遍历该数组中的项目,可以使用for循环:
for (var i = 0, l = content.item3.length; i < l; i += 1) {
console.log(content.item3[i]);
}
这就是你将console.log项目输出的方法 - 如果你想用它们做其他事情,你需要用该行动代替console.log调用。
这是一个更新的小提琴,可以完成我认为您正在寻找的内容:http://jsfiddle.net/qobo98yr/5/
这是将内容对象中的所有内容打印到控制台的代码:
var outputString = "";
for (var prop in content) {
outputString += (content[prop] + " ");
}
console.log(outputString);
答案 1 :(得分:0)
您的内容变量是包含以下内容的对象:
item1: String
item2: String
item3: array
var content = {
item1: "John",
item2: "Doe",
item3: { "item3_1", "item3_2", "item3_3" }
}
如果item3是一个数组,那么应该使用数组符号
var content = {
item1: "John",
item2: "Doe",
item3: ["item3_1", "item3_2", "item3_3"]
}
现在你可以传递这个对象并调用它的字段:
function print(obj) {
var fname = obj.item1;
var lname = obj.item2;
var array = obj.item3;
alert(array.toString());
}
对函数的调用看起来像
print(content);