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()
    });

8 将数据提取,并转换为一个数组

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值