【发布时间】:2021-02-27 17:39:42
【问题描述】:
抱歉,我的 Javascript 技能并不出色,因此,有以下问题:
我正在尝试将字符串解析为 JSON 对象,然后对其进行排序。但是,当我执行我得到的函数时,它说排序函数不正确。我的功能如下:
function () {
var controlerValue = control.val();
if (multiSelectBehavior != "none") {
return controlerValue == "" ? [] : JSON.parse(controlerValue).sort(function (a, b) { return a - b });
}
return JSON.parse(controlerValue);
}
control.val()(这是一个类型字符串)的例子如下:
“[11,3,4,6,18,9,11,10,13]”
“”(空白)
如上函数所示如何对JSON对象进行排序?
【问题讨论】:
-
"11, 4, 9, 3"is not valid JSON -"\"11, 4, 9, 3\""虽然...但是 JSON.parse 将为该 JSON 返回一个 String ...您没有收到错误的事实表明control.val()可能是"".. 但是 JSON.parse 会失败,因为[]不是有效的 JSON -
为什么使用
JSON.parse根本不controlerValue只是一个字符串?你就不能controlerValue.split(",").sort(... -
There is no such thing as a JSON object。一旦 JSON 被解析,它就会变成一个普通的旧 JavaScript 对象(数组,等等)。
-
如果是
"\"11, 4, 9, 3\"",则返回JSON.parse(controlerValue).split(/,\s*/).map(Number).sort((a, b) => a-b),如果是"",则返回[] -
然后
JSON.parse(controlerValue).sort((a, b) => a-b)工作(只要数据不包括"[1,2,3]"中的"
标签: javascript jquery json frontend