【问题标题】:Get an array reference from an object从对象中获取数组引用
【发布时间】:2014-07-08 13:36:33
【问题描述】:

我有一个 javascript 代码(有人做过),它从服务器端获取数据(代码不可用)。

jxr['hilites'] = $.get(url_interface + "&do=hilites&page=" + page, function(json) { }

当我在 Chrome 中调试代码时。我看到对象 json 有另一个名为 2 的对象,它进一步包含整数类型的数组。

我的问题: 1. 2是物体的名字还是位置?如果位置那么为什么它不显示位置 0 和 1? 2. 如果是名字,我想知道怎么可能用数字来命名。任何示例链接?

很抱歉问了一个非常基本的问题。非常感谢您的回复。

【问题讨论】:

  • 这是名称,而不是索引。您可以使用json["2"]["2_1"][0] 访问它(例如)
  • 我不认为“调试 JQuery 代码”是个好标题... :)
  • @Archer 如果只有 SO 有一个“标记为答案”按钮。
  • 我不喜欢这么简单的答案,但这次你说服了我:D
  • @Archer:你能告诉我一个例子吗?如何创建这样的 json 让我们在 C# 中说。我迫切需要它。谢谢谢谢

标签: javascript jquery asp.net google-chrome


【解决方案1】:

2 是属性的名称。对象没有名称,它们最接近的是具有引用它们的变量或属性(将具有标识符)。

即使在数组中,位置也只是数组的一种产物,它是一种对象,它对名称为整数的属性赋予特殊意义。

你可以有稀疏数组:

var foo = [];
foo.push("data");
foo.push("data");
foo.push("data");
delete foo[1];
console.log("Length: " , foo.length);
console.log("Array: " , foo);
console.log("0" in foo, "1" in foo, "2" in foo);

Length:  3
Array:  [ 'data', , 'data' ]
true false true

【讨论】:

  • 你能否为上面的问题对象写一个例子,它在上面创建 json 对象。谢谢
  • 它与任何其他不是有效标识符的属性名称相同。使用字符串。 var foo = { "2": {/* more data in this object*/} }
  • 好的。 c# 中 foo 的等价物是什么?我的意思是如何在 c# 中创建这样的对象
  • 我不知道你是如何在 c# 中创建变量的,我从来没有使用过这种语言。
  • @mrd 在 C# 中最接近 JS 对象的是 ExpandoObject(这实际上只是一个字典的包装器)。
猜你喜欢
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 2018-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
相关资源
最近更新 更多