js运用sort对json 数组进行排序
Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列。sort() 方法可以接受一个 方法为参数。
sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递给这个函数。当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换。
var p = [5, 2, 3, 1, 7, 5, 6, 9, 6, 0];
function down(a, b) {
return (a < b) ? 1 : -1
}
p.sort(down)
alert(p)
json排序
var p = [
{name:"kitty", age:12},
{name:"sonny", age:9},
{name:"jake", age:13},
{name:"fun", age:24}
]
function down(x, y) {
return (x.age < y.age) ? 1 : -1
}
p.sort(down)
var $text = "<div>"
$.each(p, function (key, value) {
var $div = "<div>"
$.each(value, function (key, value) {
$div += "<span>" + key + ":</span>" + "<span>" + value + "</span>" + " "
})
$div += "</div>"
$text = $text + $div
})
$text += "</div>"
$(".text").html($text)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
写成类
<script type="text/javascript">
$(document).ready(function () {
var p = [
{name:"kitty", age:12, price:190},
{name:"sonny", age:9, price:390},
{name:"jake", age:13, price:42},
{name:"fun", age:24, price:210}
]
var tablesort = {
init:function (arry, parm, sortby) {
this.obj = arry
this.parm = parm
this.b = sortby
},
sot:function () {
var $this = this
var down = function (x, y) {
return (eval("x." + $this.parm) > eval("y." + $this.parm)) ? -1 : 1
}//通过eval对json对象的键值传参
var up = function (x, y) {
return (eval("x." + $this.parm) < eval("y." + $this.parm)) ? -1 : 1
}
if (this.b == "down") {
this.obj.sort(down)
}
else {
this.obj.sort(up)
}
},//排序
prin:function () {
var $text = "<div>"
$.each(this.obj, function (key, value) {
var $div = "<div>"
$.each(value, function (key, value) {
$div += "<span>" + key + ":</span>" + "<span>" + value + "</span>" + " "
})
$div += "</div>"
$text = $text + $div
})
$text += "</div>"
$("html body").html($text)
}//遍历添加dom元素,添加dom
}
function _temp() {
this.init.apply(this, arguments)
}
_temp.prototype = tablesort;
var sort1 = new _temp(p, "price", "down") //建立对象
sort1.init(p, "age", "up");//初始化参数更改
sort1.sot()
sort1.prin()
})
</script>
js运用sort对json 数组进行排序
js运用sort对json 数组进行排序的更多相关文章
- js的sort(0实现数组的排序
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- js中字符串和json数组的相互转换
//示例 var a={"name":"tom","sex":"男","age":"24& ...
- 对JSON数组对象排序-有键相同的元素,分组数量不一致,可采用如下的JS进行循环表格输出
var now=eval(data.data); // now.sort(sortBy('bigIdOrder', true, parseInt)); var tab=""; va ...
- js中如何向json数组添加元素
//1. var jsonstr="[{'name':'a','value':1},{'name':'b','value':2}]"; var jsonarray = eval(' ...
- 关于JS解析编历JSON数组(含多维数组)
第一部分: ].xing) 第二部分: } 解释: countryObj 为value对象的一个属性明 value[coun ...
- JS向后台传递json数组对象
var Obj = []; //一下代码可以循环插入 var returnObj = new Object();//创建一个对象 returnObj.id = “123”: returnObj.mon ...
- python json数组对象排序
arr = [{"name": "name_1", "level": 1}, {"name": "name_2 ...
- js中使用将json数组 转换为json将一个包含对象的数组用以创建一个包含新重新格式化对象的新数组
1.使用reduce: let arr = [{ "code": "badge", "priceList": [{ "amount ...
- JS中json数组多字段排序方法(解决兼容性问题)(转)
前端对一个json数组进行排序,用户需要动态的根据自己的选择来对json数据进行排序. 由于后台表设计问题所以不能用sql进行排序,这里用到了js的sort方法. 如果对单字段排序,那么很简单,一个s ...
随机推荐
- MyEclipse 8.6.1 制作绿色版
我们先在这个目录下新建一个文件: MyEclipse 10.6.bat , 文件内容如下: start eclipse\eclipse.exe -vm jre\bin\javaw.exe 接下来只需要 ...
- GetHub上很实用的几个Demo
手机号匹配的正则表达式:https://github.com/VincentSit/ChinaMobilePhoneNumberRegex/blob/master/README-CN.md FEBS- ...
- gpg加密和解密
linux:gpg加密和解密 1 创建密钥 2 查看私钥 3 导出公钥 4 导出私钥 5 导入秘钥 5.1 公钥 6 公钥加密 7 私钥解密 创建密钥 gpg --gen-key 你要求输入一下内容, ...
- POJ1471 Tree/洛谷P4178 Tree
Tree P4178 Tree 点分治板子. 点分治就是直接找树的重心进行暴力计算,每次树的深度不会超过子树深度的\(\frac{1}{2}\),计算完就消除影响,找下一个重心. 所以伪代码: voi ...
- Codeforces 591 B:Rebranding
B. Rebranding time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- php+ajax 实现无限树列表
首先介绍我实现的是xhprof插件的日志转为无限树状图,先看效果图: 废话不多说,直接看代码:(辛辛苦苦敲了好久才搞定,逻辑比较多,新手多揣摩) 控制器: 1 <?php 2 3 namespa ...
- java面试题汇总,不断更新中。。。
JVM,并发,锁相关: 1.请你谈谈对volatile的理解,volatile是否存在伪共享问题. 2.cas你知道吗? 3.原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗? 4 ...
- DOM基础2——元素
1.造元素 document.createElement("标签名") 例:var div_new=document.createElement("div"); ...
- POJ1723 SOLDIERS 兄弟连
SOLDIERS 有一个性质:在一个长为n的序列a中找一个数 \(a_k\) 使得 \(\sum\limits_{i=1}^n abs(a_i-a_k)\) 最小,则 \(a_k\) 是a的中位数. ...
- HihoCoder第九周 状态压缩 二 与POJ2411总结
在此我向各位博友求助,特别想知道除了HihoCoder上面的结果要对1e9+7取余之外,这两道题还有什么其他的问题,都是骨牌覆盖问题,都是状态压缩+dp,为什么我能过poj2411的程序过不了Hiho ...