vue 项目 es6、常用封装方法(时间格式转换、下拉框中英文转换等)以及join()、filter()

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;
	},
  1. 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"}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值