填充值后,Javascript数组为空
我尝试了以下代码:
var browserdata = new Array();
// Fill the array with values
browserdata["qqq"] = "zzz";
browserdata["rrr"] = 1;
console.log(browserdata); // This shows an empty array
应显示{“ qqq” =>“ zzz”,“ zzz” => 1} 实际输出为[](空数组)。
答案 0 :(得分:2)
您需要使用Object数据类型而不是Array。使用对象结构,您可以为其分配属性以及该属性的对应值,以获取所需的输出为{ "qqq" => "zzz", "zzz" => 1 }
var browserdata = {};
// Fill the object with values
browserdata["qqq"] = "zzz";
browserdata["rrr"] = 1;
console.log(browserdata);
您还可以使用另一种方法,在声明对象时分配属性:
var browserdata = {
'qqq': 'zzz',
'rrr': 1
};
console.log(browserdata);
答案 1 :(得分:0)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
如果使用单个参数(即数字)调用new Array(),则它将创建一个没有项目但具有给定长度的数组。
它很少使用,因为方括号[]较短。另外,它还有一个棘手的功能。
var arr = new Array(2); // will it create an array of [2] ?
console.log( arr[0] ); // undefined! no elements.
console.log( arr.length ); // length 2
var browserdata = new Array();
browserdata[0] = "zzz";
browserdata[1] = 1;
console.log(browserdata);
console.log(browserdata.length);
答案 2 :(得分:0)
它永远不会返回空,因为数组中有数据,使用您的代码它将返回一个输出 [qqq:“ zzz”,rrr:1] 如果您希望获得类似{“ qqq” =>“ zzz”,“ zzz” => 1}的输出,则应使用对象。对象不过是一组数据, 例如,考虑一个具有不同数据集的学生数组。 在这里您可以定义单个数据或数据集,例如
student ['name'] = john; 学生['mark'] = 20;
OR
学生= [{{name:john,mark:20},{name:rick,mark:20}]
答案 3 :(得分:0)
该解决方案对我有用。使用{}而不是[]或new Array()进行初始化是可行的。谢谢。
var browserdata = {};
// Fill the object with values
browserdata["qqq"] = "zzz";
browserdata["rrr"] = 1;
console.log(browserdata);
答案 4 :(得分:0)
默认情况下,仅显示数组对象的正整数键,但是其余属性仍可以在Google Chrome控制台中访问和查看。
var arr = []
arr[1] = 1
arr[-1] = -1
arr[.1] = .1
arr.a = 'a'
arr['b'] = 'b'
console.log( arr ) // [undefined, 1]
console.log( arr.b ) // "b"
console.log( { ...arr } ) // { "1": 1, "-1": -1, "0.1": 0.1, "a": "a", "b": "b" }