JS物件陣列根據屬性排序
在專案中需要給grid的某一列排序,但又不是miniui那樣的人為的操作,本來是想用冒泡來排下序就行了,結果發現事情沒有這麼簡單,當然也沒有那麼複雜,之前轉的一篇文章中,介紹了很多js陣列的方法,今天就用到了sort()方法。
sort()方法會改變原來的陣列,並且sort方法並不是嚴格按照數字大小排序的,好像是根據字元的阿斯科碼錶對應值排序的。如果想對陣列按照大小進行排序,則需要在sort()方法新增比較函式。
var arr = [ {name:'zopp',age:0}, {name:'gpp',age:18}, {name:'yjj',age:8} ]; function compare(property){ return function(a,b){ var value1 = a[property]; var value2 = b[property]; return value1 - value2; } } console.log(arr.sort(compare('age')))
如何根據引數不同,來確定是升序排列,還是降序排序呢?
/**陣列根據陣列物件中的某個屬性值進行排序的方法 * 使用例子:newArray.sort(sortBy('number',false)) //表示根據number屬性降序排列;若第二個引數不傳遞,預設表示升序排序 * @param attr 排序的屬性 如number屬性 * @param rev true表示升序排列,false降序排序 * */ sortBy: function(attr,rev){ //第二個引數沒有傳遞 預設升序排列 if(rev == undefined){ rev = 1; }else{ rev = (rev) ? 1 : -1; } return function(a,b){ a = a[attr]; b = b[attr]; if(a < b){ return rev * -1; } if(a > b){ return rev * 1; } return 0; }
相關推薦
JS物件陣列根據屬性排序
在專案中需要給grid的某一列排序,但又不是miniui那樣的人為的操作,本來是想用冒泡來排下序就行了,結果發現事情沒有這麼簡單,當然也沒有那麼複雜,之前轉的一篇文章中,介紹了很多js陣列的方法,今天就用到了sort()方法。 sort()方法會改變原來的陣列,並且sort
js物件排序、物件陣列根據屬性排序、物件生成類url字串
工作中經常會遇到物件屬性排序的問題,在加密中,根據屬性名自然排序,然後拼接成字串加密,也是很常見的需求,接下來給大家帶來一些基本方法: 1.首先是根據首字元自然排序: const obj = {cc:'',dd:'dd',ff:'ff',aa:'aa',bb:'bb'} //屬性隨機排列的物
js 物件陣列新增屬性、修改屬性
var kvArray = [{key: 1, value: 10}, {key: 2, value: 20}, {key: 3, value: 30}]; var reformattedArray = kvAr
js物件陣列 根據某個共同欄位 分組
[ {"id":"1001","name":"值1","value":"111"}, {"id":"1001","name":"值1","value":"11111"}, {"id":"1002","name":"值2","value":"25462
JavaScript物件陣列根據某屬性sort升降序排序
1、自定義一個比較器,其引數為待排序的屬性。 2、將帶引數的比較器傳入sort()。 var data = [ {name: "Bruce", age: 23, id: 16, score: 80}, {name: "Alice", age: 24, id: 12, score: 90},
如何根據List中 物件的某一屬性排序,比如按照學生物件的年齡屬性排序。|Collections.max()|Collections.sort()
本文目錄 1.List相關 List 是有序的,即按照元素的新增順序排列的,如ArrayList、LinkedList。 List是可重複的,即能存入多條完全一樣的資料或物件。 2.如何取List中(基本型別)的最大值
JAVA list 根據物件的某個屬性排序
//需要排序的list List<T> list= new ArrayList<>(); //開始排序 Collections.sort(list, new Comparator<T>(){ public int compare(T o1,
js物件陣列排序,name字串排序,數字最前,然後英文,然後中文
/** * 將傳入的陣列根據當前系統語言,按照中文或英文名重新排序,會影響原陣列 * @param list 必填要排序的list * @returns {*} */ export function arraySortByName(list) { if (list === undefin
List集合中的物件根據屬性排序
集合類List存放的資料,預設是按照放入時的順序存放的,比如依次放入A、B、C,則取得時候,則也是A、B、C的順序,實際場景中,有時我們需要根據自定義的規則對List中的元素進行排序,該如何實現呢?看
java 物件String型別屬性排序
方法一:內部類實現comparator介面 程式碼演示 import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; class B{ String name; String da
js物件陣列分組
var arr = [ { "id" : "1001" , "name" : "值1" , "value" : "111" }, &nb
js物件動態新增屬性,方法
1. 動態新增屬性,方法 var object = new Object(); object.name = "name"; object.age = 19; >>>{name: "name", age: 19} object.fun = function(){ console
JS物件陣列的深度拷貝
直接=是淺拷貝,對於想完全複製可以這樣: 途徑1 let arrObj2=JSON.parse(JSON.stringify(arrObj1)); 途徑2 var objDeepCopy = function (source) { var sourceCop
vue 爬坑 之js 物件/陣列 賦值/拷貝 解決VUE中賦值引用後資料雙向改變的問題
淺拷貝這裡就不講了,我們直接講深拷貝 正常的陣列/物件拷貝可以直接用 const cloneObj = JSON.parse(JSON.stringify(Obj)); 這種方式可以解決相當多一部分的賦值問題,但是一些特殊屬性除外(undefined/function)
Java自定義物件陣列、集合排序
//實體類: package CategoryDp2; import java.util.Comparator; public class Cat implements Comparator<Cat>,Comparable<Cat>{private
後臺map 轉為json 傳到前臺 構建js物件陣列
後臺java程式碼 Map listMap = new HashMap(); listMap.put("10", "熱賣商品"); listMap.put("11", "限時搶購"); JsonConfig config = new JsonConfig(); String
js中陣列反向、排序reverse、sort
全棧工程師開發手冊 (作者:欒鵬) js中陣列反向、排序 陣列反向使用reverse函式,陣列排序使用sort函式,排序函式可以傳入比較函式,也可以修改陣列圓形,自定義新增排序函式 程
一行程式碼完成js物件陣列的深拷貝
1、對於普通陣列(陣列元素為數字或者字串),深拷貝很簡單,拷貝之後兩個陣列指標指向的儲存地址不同,從而完成深拷貝 var _test = [1,2,3];//原陣列 var _testCopy = [].concat(_test);//拷貝陣列 _testCopy[0]=4
js 物件動態新增屬性、合併屬性
1、物件合併: var obj = {a:1, name: 'test'}; var shuxing = {name:"super",sex:"19",work:"IT"}; for(var r in
js中陣列(Array)的排序(sort)注意事項
var arrDemo = new Array(); arrDemo[0] = 10; arrDemo[1] = 50; arrDemo[2] = 51; arrDemo[3] = 100; arrDemo.sort(); //呼叫sort方法後,陣列本身會被