记录commom.js与数据处理方法
记录commom.js与数据处理方法
JavaScript 其它杂项
共2Star
详细介绍
选择排序法衍生操作数据
// j=0,i的临界值=1
// j=1,i的临界值=2
// 设i=kj+b
// {
// b=1
// k=1
// }
var arr=[10,2,8,55,32,18,9,11,30,16,19,20];
for(j = 0;j<=arr.length-2;j++){
for(i=j+1;i<=arr.length-1;i++){
if(arr[j]>arr[i]){
var a = arr[j];
arr[j]=arr[i];
arr[i]=a;
}
console.log(arr.join());
}
}
数组去重方法:
通过ES6 set 的唯一性去重
let a = [1,2,3,1,2,2]
let b = new Set(a);
console.log([...b])
//console.log(Array.from(b))
对象法-去重
/**
*一维数组根据字段去重 [{name:'abc',age:12},{name:'efc',age:12},]
* @param {array} data 去重的数组
* @param {string} str 去重根据的字段
* @param {boolean} bool 返回数组或对象,默认不传参返回数组。
*/
function deweight(data,str,bool){
//避免后续操作对原数据有影响
var list = data.slice(0);
var opt = {};
var arr=[];
list.forEach(function(n){
//判断该字段是否已作为属性
if(opt[n[str]]){
opt[n[str]].push(n)
}else{
//该字段为属性,该字段处于的obj为属性值
opt[n[str]]=[n]
}
})
for(var attr in opt){
arr.push(attr)
}
if(bool){
//有第三个参数则返回一个分类好的对象
return opt
}else{
//默认返回该字段的去重结果
return arr
}
}
通过选择排序法衍生每一项两两对比去重
模板法
一般用于后端没有处理数据,把全部数据返回给前端,前端自己组装需要的数据格式。 例如做二维数组、拼装散数据[{name:123,a:1},{name:123,b:2}] –>[{name:123,a:1,b:2}]
第一层循环模板数组,var 一个默认的子项目,再写第二层循环,里面再匹配数据,改变默认子项目的值,再把子项目的值push到一个数组中...
var temparr = []
seriesdata0.forEach(function(n,i){
var temp = "-";
res.data.forEach(function (item) {
if(item.yearmonth==n) {
temp = item.blackjd
}
})
temparr.push(temp)
})
console.log(temparr)
//过滤对象中属性名包含"input"的属性值出来,用数组包着
obj={
input0:123,
input2:123,
input3:123,
name:222,
}
let temp = Object.keys(obj)
.filter(item => item.includes("input"))
.map(item => obj[item]);
-
0 Star
-
6 Star
-
4296 Star
-
441 Star
-
2630 Star
-
1 Star
-
169 Star
-
65 Star
-
0 Star
-
0 Star