javascript中陣列常用的操作
阿新 • • 發佈:2021-01-07
技術標籤:javascriptjavascript
- 字串
//字串陣列
const strArr = ["2020年", "2019年", "2021年", "2018年"];
const newAscStrArr = JSON.parse(JSON.stringify(strArr)).sort((a, b) => {
return a.localeCompare(b);
}); //升序
console.log (newAscStrArr);//["2018年","2019年","2020年","2021年"]
const newDescStrArr = JSON.parse(JSON.stringify(strArr)).sort((a, b) => {
return b.localeCompare(a);
}); //降序
console.log(newDescStrArr);//["2021年","2020年","2019年","2018年"]
- 數值
//數值陣列
const arr = [100, 200, 50, 1000];
const newAscNumberArr = JSON.parse(JSON.stringify(arr)).sort((a, b) => {
return a - b;
}); //升序
console.log(newAscNumberArr);//[50,100,200,1000]
const newDescNumberArr = JSON.parse(JSON.stringify(arr)).sort((a, b) => {
return b - a;
}); //降序
console. log(newDescNumberArr);//[1000,200,100,50]
- 物件陣列
//物件陣列
const objArr = [
{ name: "2020年", value: 1000 },
{ name: "2019年", value: 299 },
{ name: "2021年", value: 666 },
{ name: "2018年", value: 54 }
];
//按name
const newAscObjArr = JSON.parse(JSON.stringify(objArr)).sort((a, b) => {
return a.name.localeCompare(b.name);
}); //升序
console.log(newAscObjArr);// 升序[{"name":"2018年","value":54},{"name":"2019年","value":299},{"name":"2020年","value":1000},{"name":"2021年","value":666}]
const newDescObjArr = JSON.parse(JSON.stringify(objArr)).sort((a, b) => {
return b.name.localeCompare(a.name);
}); //降序
console.log(newDescObjArr);//[{"name":"2021年","value":666},{"name":"2020年","value":1000},{"name":"2019年","value":299},{"name":"2018年","value":54}]
//按value
const newAscObjArrByValue = JSON.parse(JSON.stringify(objArr)).sort(
(a, b) => {
return a.value - b.value;
}
); //升序
console.log(newAscObjArrByValue);//[{"name":"2018年","value":54},{"name":"2019年","value":299},{"name":"2021年","value":666},{"name":"2020年","value":1000}]
const newDescObjArrByValue = JSON.parse(JSON.stringify(objArr)).sort(
(a, b) => {
return b.value - a.value;
}
); //降序
console.log(newDescObjArrByValue);//[{"name":"2020年","value":1000},{"name":"2021年","value":666},{"name":"2019年","value":299},{"name":"2018年","value":54}]
- 去重(程式碼參見)
const datas = ["張三", "李四", "張三", "李四", "張三", "李四", "wangwu"];
const newDatas = Array.from(new Set(datas)); //去重
console.log(datas, newDatas);//原資料:["張三","李四","張三","李四","張三","李四","wangwu"],結果資料:["張三","李四","wangwu"]
- 比較相等
請使用lodash.isequal庫
- 檢測物件是否為陣列,使用instanceof 操作符,程式碼參見
const value=["8888"]
const isArr=value instanceof Array//true
- 轉化為字串
- toString()
const datas=["張三", "李四", "張三", "李四", "張三", "李四", "wangwu"]
const str=datas.toString()//"張三,李四,張三,李四,張三,李四,wangwu"
- JSON.stringify()
const datas=["張三", "李四", "張三", "李四", "張三", "李四", "wangwu"]
const json=JSON.stringify(datas)
//"["張三","李四","張三","李四","張三","李四","wangwu"]"
- join()
const datas=["張三", "李四", "張三", "李四", "張三", "李四", "wangwu"]
const joinStr = datas.join("|");//"張三|李四|張三|李四|張三|李四|wangwu"