说明:这篇文章是我在敲代码的过程中遇到的所有关于数组处理的方法,也是我最常用的,希望这篇文章能给你们带来一些帮助,废话不多说,直接上代码!
数组去重
// An highlighted block
function quchong(arr) {
const arrs = new Array();
arr.forEach((v: { staff_no: string }) => {
let flag = true;
arrs.forEach((i: { staff_no: string }) => {
if (v.staff_no === i.staff_no) {
flag = false;
}
});
if (flag) {
arrs.push(v);
}
});
return arrs;
}
我相信,你已经看出来了,主要的就是两层for循环罢了,而内层的for循环其实是实现了一下indexOf( )的功能。
数组分页
slice()可用于数组分页
// An highlighted block
const offset = (message.pagenos - 1) * message.pagesizes;
return { arr: (offset + message.pagesizes >= arr.length) ? arr.slice(offset, arr.length) : arr.slice(offset, offset + message.pagesizes) };
数组合并
数组中的对象某一相同的字段名,并统计合并某一指定字段的和;组成新的数组
// An highlighted block
// 数组处理
const obj = {};
const arr = [];
for (let i = 0, len = arr.length; i < len; i++) {
const currentData = arr[i];
const currentKey = currentData.layout_id;
const hased = currentKey in obj;
obj[currentKey] = {
name_room: currentData.name_room,
list: (hased ? obj[currentKey].list : []).concat({ rm_number: currentData.rm_number })
};
}
for (const key in obj) {
arr.push(obj[key]);
}
concat() 方法
// An highlighted block
var a = [1,2,3];
var b=[4,5]
a = a.concat(b);
console.log(a);
//此处输出为 [1, 2, 3 ,4 ,5]
push() 方法
// An highlighted block
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1.push(...arr2);
console.log(arr1)//[0,1,2,3,4,5]