探美资讯网

您现在的位置是:首页 > 社会热点 > 正文

社会热点

JS根据json数组多个字段排序及json数组常用操作

admin2023-10-16 17:57:29社会热点7
JS根据json数组多个字段排序及json数组常⽤操作js根据json数组多个字段排序的实现代码如下所⽰:/**数组根据数组对象中的某个属性值进⾏排序的⽅法*使⽤例⼦:newArray.sort(sortByArr([number],fal

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

发表评论