1.arr.map()常用方法集合。
处理成新的数组格式
(场景:表格多选 ,批量导出功能,传各列id的数组格式)
{
name: "导出",
click: () => {
if (!this.selection.length) //selection获取到当前的整行数据
return this.$message.warning("请选择要导出的数据");
let title = `课题组导出表`;
this.$refs.page.exportAllxlsx({
api: exportresearchXlsx,
filename: title,
params: "["+ this.selection.map((item) => item.id)+"]", //使用map方法获取到多列的id eg:["1","3"]
});
},
}
2.arr.find()
(场景:表格后端返英文/拼音格式,前端显示 汉字)
//需要传两个参数。一个是当前的数据,一个是自己定义的英文和汉字对应的数组
//英文转汉字
enToText(en, arr) { //enToText(String,Array){}
let item = arr.find((v) => v.value === en);
return item ? item.label : "-";
},
定义的 js文件
export const arr = [
{label: "普通", value: "GENERAL" },
{label: "工业客户(大)", value: "INDUSTRYB" },
{label: "工业客户(小)", value: "INDUSTRYS" },
]
3.arr.filter()
(使用场景:获取数组中元素相同的个数)
//获取数组中元素相同的个数
getSameNum(val, arr) { //(String,Array){}
let processArr = arr.filter((value) => {
return value === val;
})
return processArr.length || 0;
},
- arr.reduce()
(场景:数字对象去重)
//数字对象去重
arrayObjDuplicate(arr, key) {
let temp = []
var hash = {};
temp = arr.reduce((item, next) => {
hash[item[key]] ? '' : hash[next[key]] = true && item.push(next)
console.log(item, '000')
return item
}, []);
return temp
},
//判断对象是否为空对象
isEmptyObj(obj) {
return JSON.stringify(obj) === '{}'
},
时间转换方法封装集合:
dateToString: () => {
let t = new Date();
return `${t.getFullYear()}${pad2(t.getMonth() + 1)}${pad2(t.getDate())}`;
},
// 解析日期为 YYYY-MM-DD
parseDate: () => {
let t = new Date();
return `${t.getFullYear()}-${pad2(t.getMonth() + 1)}-${pad2(t.getDate())}`;
},
// 解析日期时间为 YYYY-MM-DD HH:II:SS
parseDatetimeStr: function (d) {
if (d) {
d = Number(d)
let t = new Date(d);
return `${t.getFullYear()}年${pad2(t.getMonth() + 1)}月${pad2(t.getDate())}日`;
}
return '';
},
dateStr() {
return `${Date.now().toString()}`
},
// 解析日期时间为 YYYY-MM-DD HH:II:SS
parseDatetime: function (d) {
if (d) {
let t = new Date(d);
return `${t.getFullYear()}-${pad2(t.getMonth() + 1)}-${pad2(t.getDate())} ${pad2(t.getHours())}:${pad2(t.getMinutes())}:${pad2(t.getSeconds())}`;
}
return '';
},
// 解析日期时间为 YYYY-MM-DD HH:II:SS
parseDatetimeSeconds: function (d) {
if (d) {
let t = new Date(parseInt(d, 10));
return `${t.getFullYear()}-${pad2(t.getMonth() + 1)}-${pad2(t.getDate())} ${pad2(t.getHours())}:${pad2(t.getMinutes())}:${pad2(t.getSeconds())}`;
}
return '';
},
搜索框字符串,将问号后面字符得到并转换为对象
/**
* 搜索框字符串,将问号后面字符得到并转换为对象
* @return {Object}
*/
getLocationSearch(key) {
//取得查询字符串并去掉开头的问号
var str = (location.search.length > 0 ? location.search.substring(1) : "");
var args = {};//保存数据的对象
var items = str.length ? str.split('&') : [];//取得每一项
var item = null;
var name = null;
var value = null;
for (var i = 0; i < items.length; i++) {
item = items[i].split('=');
name = decodeURIComponent(item[0]);
value = decodeURIComponent(item[1]);
if (name.length) {
args[name] = value;
}
}
console.log(args, 'var')
return args[key] || '';
},
数组内属性值 相加减:用forEach
<el-row class="page-bottom">
<el-col :span="24">
<b>合计金额:{{totalPrice(item.sequencingOrders)}}
</el-col>
</el-row>
totalPrice(data) {
let num =0
data.forEach(e => {
num += e.sequencingOrderSettlementVO.settlementAmount
});
returnnum
}
join()方法,将数组以特定的方式转为字符串,比如 空格,逗号,顿号等。
[1,2,3,4].join(' ') //"1 2 3 4"
[1,2,3,4].join('、') //"1、2、3、4"
[1,2,3,4].join(',') //"1,2,3,4"
fiflter() 会返回符合条件的数组集合,赋值后进行判断数组的长度等等,继续下面的逻辑
let v = [1,2,3,4,5].filter(item => item ===2) //[2]
let v1 =[1,2,3,4,5].filter(item => {return item/2 === 0}) //[]
Array.includes()函数的用法
indexOf() 数组和字符串都可以使用
[1,2,3,4].indexOf('3') //-1
[1,2,3,4].indexOf(3) //2
Array.some() 方法,只能返回true和false
- 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
- 如果没有满足条件的元素,则返回false。
[4, 9, 16, 25].some(item => item>10) //true
const c = arr.some(item => item<1) //false
Array…every() 只有所有元素都满足条件,则返回 true,和some()方法正好相反。
[4, 9, 16, 25].every(item => item>9) //false
[4, 9, 16, 25].every(item => item>2) //true
Array.find() 返回满足条件的数组集合的第一个元素,不会放在数组里面
[2,4,2,1].find(item=>item>1) //2
[{v:"2"},{v:"342d"},{v:"2"}].find(item=>item.v==="2") //{v: "2"}