利用Array.from()的一些数据操作方法

1. 求和sum

    根据传入的参数, 将arguments类数组对象转化为真数组, 并利用reduce方法求和

   

function sum() {
 	// Array.from()将arguments类数组转换为真数组
 	// 也可以使用Array.prototype.slice.call(arguments) , 这是ES5语法, 兼容性更好
 	return Array.from(arguments).reduce((prev, cur) => {
 		return prev + cur
 	}, 0)
 }

 console.log(sum(1,2,3,4,5,6)); // 21

2. 去重

 1. 简单的数组去重

function unique(array) {
 	// 亦可以直接return [...new Set(array)],彻底的ES6语法
 	return Array.from(new Set(array))
 }

 console.log(unique([1,2,2,3,3,5])); // [1, 2, 3, 5] 

2. 稍微复杂点的数组去重

  

function reduceArray(array) {
    if (array.length === 0) {
      return []
    }
    let obj = {}
    return array.reduce((cur, next) => {
      obj[next.code] ? '' : obj[next.code] = true && cur.push(next)
      return cur
    }, [])
  }

  let array1 = [
   {
   	code: '111',
   	name: 'lala' 
   },
   {
   	code: '123',
   	name: 'aiai' 
   },
   {
   	code: '111',
   	name: 'lala' 
   },
   {
   	code: '131',
   	name: 'mimi' 
   }
  ]

  console.log(reduceArray(array1));

3. 递增数组

function range(ends) {
 	return Array.from({length: ends}, (_, i) => i + 1)
 }

 console.log(range(3)); // [1, 2, 3]

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值