js中一些常用方法的整理总结
1. js通过 输入Key,返回对应的value,或者输入value,返回对应的Key(笨办法)
数据结构:一个json数组,里面包含同类型的多条数据。
AllCustomer=[
{ 1:{key:"201",value:"张三"}},
{ 2:{key:"202",value:"李四"}},
{ 3:{key:"203",value:"王二"}}
]
需求:输入键,获取值
//传入key,返回value
formatInputerKey(text) {
for (let i = 0; i < this.AllCustomer.length; i++) {
const oneCustomer= this.AllCustomer[i]
if (text == oneCustomer.key) return oneCustomer.value
}
},
同理:可以知道输入value,返回Key的方式
//传入Value,返回对应的Key
formatInputerValue(text) {
for (let i = 0; i < this.AllCustomer.length; i++) {
const oneCustomer= this.AllCustomer[i]
if (text == oneCustomer.value) return oneCustomer.key
}
},
在后续的发展中,js中也可以使用枚举类,当key和value固定时,可以使用枚举类方便的实现该功能
2. 将长对象,截取为短对象
说明:对象中原本有20个属性,但是实际只需要其中的5个属性,从节约空间,减少无用数据的传递的角度,将对象精简化
//原始数据
arr =[ {name:"",age:"",password:""},
{name:"",age:"",password:""},
{name:"",age:"",password:""},
{name:"",age:"",password:""},]
//目标数据
arr1=[{name:""},{name:""},{name:""},{name:""}]
//循环解构赋值,不仅能将对象简化,还能改变字段名称
var newInfo= arr.map(({name}) => ({name}))
//还可以给新对象中的字段取别名
var newInfo= arr.map(({name,password}) => ({name,oldpassword:password}))
结果:
如果只想获取到所有对象中的那么集合:得到一个数组
//原始数据
arr =[ {name:"nema1",age:"",password:""},
{name:"nema2",age:"",password:""},
{name:"nema3",age:"",password:""},
{name:"nema4",age:"",password:""},]
//目标数据
arr1={"nema1","nema2","nema3","nema4"}
//获取对象数组中的指定字段集合,并去除key,只保留value
var newInfo= arr.map((item) => (item.name))
3 小数设置保留指定的小数位
//保留两位小数
const getPercent = (num) => {
console.log("传入的值", num);
let result = Number(num).toFixed(2);
console.log("返回的值", result);
return Number(num).toFixed(2);
}
4 尝试将字符串装换位数字
/**
* Convert an input value to a number for persistence.
* If the conversion fails, return original string.
* 将输入值转换为一个数字,以便持久化。如果转换失败,则返回原始字符串。
*/
function toNumber(val) {
var n = parseFloat(val);
return isNaN(n) ? val : n
}
5.在数组内快速查找
6.从数组中移除指定项
/**
* Remove an item from an array.
* 从数组中移除一个项
*/
function remove(arr, item) {
if (arr.length) {
var index = arr.indexOf(item);
if (index > -1) {
return arr.splice(index, 1)
}
}
}
7.字符串拼接、驼峰转换
/**
* Camelize a hyphen-delimited string.
* 用连字符分隔的字符串
*/
var camelizeRE = /-(\w)/g;
var camelize = cached(function(str) {
return str.replace(camelizeRE, function(_, c) { return c ? c.toUpperCase() : ''; })
});
/**
* Capitalize a string.
* 利用一个字符串
*/
var capitalize = cached(function(str) {
return str.charAt(0).toUpperCase() + str.slice(1)
});
/**
* Hyphenate a camelCase string.
* 将驼峰大小写字符串连字符
*/
var hyphenateRE = /\B([A-Z])/g;
var hyphenate = cached(function(str) {
return str.replace(hyphenateRE, '-$1').toLowerCase()
});