JS根据json数组多个字段排序及json数组常用操作
JS
根据
json
数组多个字段排序及
json
数组常⽤操作
js
根据
json
数组多个字段排序的实现代码如下所⽰:
/**
数组根据数组对象中的某个属性值进⾏排序的⽅法
*
使⽤例⼦:
newArray.sort(sortByArr([ number ],false)) //
表⽰根据
number
属性降序排列
;
若第⼆个参数不传递,默认表⽰升序排序
* @param attr
排序的属性
[ name , sex ...],
根据⼀个字段或者多个字段排序
* @param rev true
表⽰升序排列,
false
降序排序
* */
function sortByArr(arr, rev) {
if (rev == undefined) {
rev = 1;
} else {
rev = (rev) ? 1 : -1;
}
return function(a, b) {
for (var i = 0; i arr.length; i++) {
let attr = arr[i]
if (a[attr] != b[attr]) {
if (a[attr] b[attr]) {
return rev * 1;
} else {
return rev * -1;
}
}
}
}
}
PS
:
Js
中对
Json
数组的常⽤操作
我们⾸先定义⼀个
json
数组对象如下:
var persons = [
{name: tina , age: 14},
{name: timo , age: 15},
{name: lily , age: 16},
{name: lucy , age: 16}
]
⼀
.
根据对象属性值得到相应对象
//1.
获取
name
等于
lily
的对象
var lily = persons.filter((p) = {
return p.name == lily
});
console.log(lily); //
打印结果
[{name: lily , age: 16}]
//
注:
filter()
⽅法返回的是⼀个数组
var twins = persons.filter((p) = {
return p.age == 16;
});
console.log(twins); //
打印结果
[{name: lily , age: 16},{name: lucy , age: 16}]
⼆
.
删除其中⼀个对象
//
删除
name
等于
tina
的对象,利⽤
splice()
⽅法
//1.
⾸先我们要得到这个对象
var tina = persons.filter((p) = {
return p.name == tina
});
//2.
其次得到这个对象在数组中对应的索引
var index = persons.indexOf(tina[0]);
//3.
如果存在则将其删除,
index -1
代表存在
index -1 persons.splice(index, 1);
console.log(persons);
//
打印结果
[{name: timo , age: 15}, {name: lily , age: 16}, {name: lucy , age: 16}]
三
.
修改其中⼀个对象的属性值
//
将
name
等于
timo
的
age
修改为
20
//1.
得到
timo
对象
var timo = persons.filter((p) = {
return p.name == timo