我有 JSON 对象
var x=[{@Name:'test 1',@Sort:'1',@Status:'yes'},
{@Name:'test 2',@Sort:'5',@Status:'yes'},
{@Name:'test 3',@Sort:'4',@Status:'no'},
{@Name:'test 5',@Sort:'2',@Status:'no'}]
我正在尝试按 @Sort、@Name 和 @Status 对 obj 进行排序。
var orderBy="@Sort";
x.sort(_sortObj(orderBy));
function _sortObj(orderBy){
return function(a,b){
return (a[orderBy]<b[orderBy])?1:0....etc
}
}
它在 Firefox 和 Chrome 中运行良好...
但在 IE 7/8 中会抛出错误“预期数字” 上线
x.sort(_sortObj(orderBy));
我不确定发生了什么事,如果有人能正确解决这个问题,那就太好了。
最佳答案
这不是一个 JSON 对象。属性名称和值必须用“双引号”括起来。
这可能是旧版 IE 中出现错误的原因,它无法理解其中的 @
。
关于javascript - IE 7/8 javascript排序错误 "Number Expected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9875565/