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