相关疑难解决方法(0)

如何对Javascript对象进行排序,或将其转换为数组?

我从服务器获得了一些JSON数据.在我的JavaScript中,我想对它进行一些排序.我认为sort()函数会做我想要的.

但是,似乎JavaScript在到达时立即将JSON数据转换为Object.如果我尝试使用sort()方法,我会得到错误a-plenty(使用Firebug进行测试).

我环顾网络,每个人似乎都说,一方面,JSON对象已经是JavaScript数组,而且对象可以像数组一样对待.就像这个问题一样,在其中一个答案中,一个人说"[对象]是你的数据 - 你可以像对待数组那样访问它."

但是,这并不完全正确.JavaScript不允许我在我的对象上使用sort().而且由于默认的假设是它们都是一样的,所以似乎没有关于如何将Object转换为数组的任何指令,或强制JavaScript将其视为一个或类似的东西.

那么......我如何让JavaScript让这个数据作为数组处理并排序()呢?

我的对象的控制台日志输出看起来像这样(我希望能够按"级别"中的值排序):

OBJECT JSONdata

{ 
1: {
    displayName: "Dude1",
    email: "dude1@example.com<mailto:dude1@example.com>",
    lastActive: 1296980700, 
    level: 57, 
    timeout: 12969932837
}, 2: {
    displayName: "Dude2",
    email: "dude2@example.com<mailto:dude2@example.com>",
    lastActive: 1296983456,
    level: 28,
    timeout: 12969937382
}, 3: {
    displayName: "Dude3",
    email: "dude3@example.com<mailto:dude3@example.com>",
    lastActive: 1296980749,
    level: 99,
    timeout: 129699323459
} 
}
Run Code Online (Sandbox Code Playgroud)

javascript arrays sorting json object

37
推荐指数
4
解决办法
5万
查看次数

Console.log消息没有显示在Chrome的javascript控制台中?

我正在使用jQuery.log插件进行日志记录(如果可用,则记录到console.log),我没有看到Chrome JavaScript控制台中出现任何日志消息.

日志在Firefox下的Firebug控制台上运行,但我必须明确启用Firebug JavaScript控制台.错过Chrome下的某个选项?

编辑:
记录到控制台的唯一事情是

未捕获的语法错误,无法识别的表达式:|按钮

我假设Chrome控制台即使在上述错误之后也会记录语句,但此处Chrome可能存在某些问题,请参阅http://code.google.com/p/chromium/issues/detail? id = 29062.我在Linux下使用Chrome 5.0.375并且该bug被列为Windows XP,Chrome 4.0问题,它仍然可以应用.

javascript jquery logging google-chrome

36
推荐指数
4
解决办法
7万
查看次数

为什么Google Chrome会通过jQuery输出不同的console.log()?

当我控制登录jquery对象时,例如.

var s = $("#item");
console.log(s);
Run Code Online (Sandbox Code Playgroud)

我得到这样的东西

[div#item, context: document, selector: "#item", jquery: "1.9.1", constructor: function, init: function…]
Run Code Online (Sandbox Code Playgroud)

我记得之前(一个月前左右),我会得到类似的东西:

 [<div id="item">pas</div>]
Run Code Online (Sandbox Code Playgroud)

这是Chrome本身的变化吗?或者jquery有变化?或者我实际上做了一些让输出看起来不同的东西

我发现第二个输出更容易阅读,我可以将鼠标悬停在此页面上并将其标记在页面上.现在我得到太多的信息,这很难读

jquery google-chrome console.log

14
推荐指数
1
解决办法
2万
查看次数

如何使用Chrome的新`console.log()`输出?

Chrome 24有一种新的输出对象的方式console.log().

例如,console.log($("p"));这个jsFiddle例子中输出这种疯狂:

?[<p>, <p>, <p>, prevObject: jQuery.fn.jQuery.init[1], context: #document, selector: "p"]
  ? 0: <p>
  ? 1: <p>
  ? 2: <p>
  ? context: #document
    length: 3
  ? prevObject: jQuery.fn.jQuery.init[1]
    selector: "p"
  ? __proto__: Object[0]
Run Code Online (Sandbox Code Playgroud)

我可以看到它将DOM元素的集合放在了开头.但是如果你试图扩展一个<p>大部分都是空的简单标签,它会抛到你身上:

? 0: <p>
   accessKey: ""
   align: ""
 ? attributes: NamedNodeMap
  ...
  [stopping here for sanity's sake]
Run Code Online (Sandbox Code Playgroud)

那么我该如何使用所有这些信息呢?我的第一直觉是把它驯服到以前的样子,但是第二个想法,那里确实有很多我可能想要访问的信息.但我很难理解我在看什么.其中大部分看起来像jQuery值.这是对象具有(或没有)的每个jQuery值的列表吗?

? context:就是事物和? __proto__:事物的整个问题.一旦你开始深入钻研,__proto__你永远不会停止.我觉得它无限下来!

我怎样才能开始学习如何使用这个新输出?

编辑:我实际上刚刚意识到我还在使用Chrome 23,这不是24中引入的东西.这个帖子中有人说这是Chrome 24的问题,但也许它是23的新版本?无论如何,我最近才开始在jQuery对象上注意到这一点.

编辑2:如果你只是想找到如何记录旧方法,试试这个:( …

console google-chrome developer-tools google-chrome-devtools

8
推荐指数
1
解决办法
2125
查看次数