数组声明式系列方法的使用

Posted Vicky沛沛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组声明式系列方法的使用相关的知识,希望对你有一定的参考价值。

gitbook完整版集合

数组声明式系列方法的使用

(1)产生一个每个元素都比原来大10的新数组
function addTen(arr)
  return arr.map((item,index)=>
    return item+10;
  )

(2)得到数组中所有奇数的和
function getAdd(arr)
  arr.reduce((pretotal,item,index)=>
    return item%2 === 1 ? pretotal+item:pretotal;
  ,0)

(3)得到值大于8且为偶数的
function filterArr(arr)
  return arr.filter((item,index)=>
    return item>8&&item%2===0;
  )

(4)找出一个值大于8且下标是偶数的元素
function getArr(arr)
  return arr.find((item,index)=>
    return item>8&&index%2===0;
  )

(5)找出一个值大于8且下标是偶数的元素的下标
function getArrindex(arr)
  return arr.findIndex((item,index)=>
    return item>8&&index%2===0;
  )

(6)判断下标为偶数的元素是否都是奇数
funcrion getConfirm(arr)
  return arr.every((item,index)=>
    //下标为奇数或者下标为偶数值都是奇数的元素
    return index%2 === 1 || (index%2 === 0 && item % 2 === 1)	
  )

(7)是否有下标为偶数的元素值为奇数
funcrion getConfirm(arr)
  return arr.some((item,index)=>
    //下标为奇数或者下标为偶数值都是奇数的元素
    return index%2 === 1 || (index%2 === 0 && item % 2 === 1)	
  )

自定义数组声明式方法
  • map
Array.prototype.map = function(callback)
  const arr = [];
  //遍历当前数组,调用callback得到一个结果数据,添加到arr
  for(let i = 0;i < this.length;i++)			//this就是原数组
    const element = this[i];
    arr.push(callback(element,i))
  
  return arr;

  • reduce
Array.prototype.redece = function(callback,initialVal)
	 let result = initialVal;
   for(let i = 0;i < this.length;i++)
   		//recude三个参数,上一次的累加结果,value,index;上一次累加结果由callback决定
			result = callback(result,this[i],i)	
   
   return result;

  • filter
//调用callback得到一个boolean值,如果为true那么就将值push到结果中去
Array.prototype.filter = function(callback)
   const result = [];
   for(let i = 0;i < this.length;i++)
      if(callback(this[i],i))
        result.push(this[i]);
      
   
   return result;

  • find
//遍历当前数组,调用callback,返回boolean值,如果为true那么就返回这个值
Array.prototype.find = function(callback)
  for(let i = 0;i < this.length;i++)
  	const element = callback(this[i],i)
  	const result = this[i];
    if(element)
      return result;
    
  
  return undefined;	//没有匹配的返回undefined

  • findIndex
//遍历当前数组,调用callback,返回boolean值,如果为true那么就返回这个值
Array.prototype.findIndex = function(callback)
  for(let i = 0;i < this.length;i++)
    if(callback(this[i],i))
      return i;
    
  
  return -1;	//没有匹配的返回undefined

  • every
//遍历,一点callback返回false,那么返回false,都不为false,返回true
Array.prototype.every = function()
	let result = true;
  for(let i = 0;i < this.length;i++)
    if(!callback(this[i],i))
      result = false
    
  
  return result;

  • some
//一旦callback为true返回true否则返回false
Array.prototype.some = function()
  let result = false;
  for(let i = 0;i < this.length;i++)
    if(callback(this[i],i))
      result = true
    
  
  return result;

以上是关于数组声明式系列方法的使用的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud学习系列第四篇声明式服务调用

SpringCloud系列十:使用Feign实现声明式REST调用

GO 显式数组初始化

显式声明和隐式声明都是啥时候用?该用哪一个?

数组这回事

Spring Boot2 系列教程 | 实现声明式事务