数组那些事(slice,splice,forEach,map,filter等等)

周五,再过会要下班了,刚才把《javascript高级程序设计》数组这块又看了下,加深下记忆。今天来继续练练笔,嘿嘿!(写下自己印象不深的东西)

一.数组的定义(数组定义分为两种)

方法一:1 var color=new Array(num);//num为数字,(当然可写,可不写) 表示数组长度
  var color=new Array("red","yellow");//直接定义数组内容
方法二:

2.var color=[];//当然也可以定义的时候直接写入数组内容["red","yellow"]  var color=["yellow","red"]

二.检测数组

方法一:
color instanceof Array //返回true或者false (这个方法本身没有问题,但是当网页中包含多个框架时可能就会出现差错);
方法二:
es5新加的方法isArray,通过Array.isArray(color),同样返回真假值,当然很多都想到了这个有兼容新的问题存在

最后能可以考虑使用Object.prototype.toString.call(color)==="[object Array]"(toString.call(color))来判断是否为数组

三 方法

1. push就是数组尾部插入,unshift头部插入(这两个一个头部,一个尾部)

2. pop数据尾部删除,shift数组头部删除

上述4个方法操作都会改变原数组内容,长度(上边就不细说,自己敲代码练练吧)

3.详细说下slice和splice这两个我自己总是记不清楚或者说老忘记

slice可以接受一个或两个参数(start,end)开始位置和结束位置。这个方法用于从数组中截取参数,当然不改变原数组。例如:
var  num=[1,2,3,4,5];
      num.slice(2,4);//[3,4];
      console.log(num);//[1,2,3,4,5]

splice这个方法有三种使用方式(改变数组)
1.删除    两个参数 start,length 即开始位置和删除的长度
2.插入    三个参数  start,length(删除),content(要插入的内容)
3.替换(也可以叫做删除后插入)同样是三个参数
例子如下:
var num=[1,2,3,4];
var del=num.splice(0,2);//  [1,2]
console.log(num);//[3,4];

var insert=num.splice(1,0,"5","6");//返回空 第二参数是0
console.log(num);//[3,5,6,4]

var change=num.splice(1,1,"7","8");//[5]
console.log(num);//[3,7,8,6,4]

注意:slice影响原数组,splice不影响原数组

接下来说下es5中加入的map,forEach,filter,every,some等

这几个迭代方法包含两个参数:第一个要对数组对象操作的方法函数,第二个(可选参数)为作用域对象

方法函数可以传递三个参数:1.数组中每个对象,2在数组中的位置,3,数组对象本身(可选)。

every()返回一个真假值 主要对数组中每个对象进行判断,每个判断为true时最后 every会返回true

some()  和every差不多,不同这个是只要有一个符合条件就会返回true

map() 返回一个数组,返回每个操作函数所需要的值 组成数组

forEach()没有返回值 主要通过参数函数对数组中对象进行操作

filter()过滤器 返回true的数组(符合条件时候)

var num=[1,2,3,4,5];

num.every(function(item,index){return item>1});// false

num.some(function(item,index){return item>1});//true
num.map(function(item,index){return item*2});// [2, 4, 6, 8, 10]
num.forEach(function(item,index){console.log(item*2)});
num.filter(function(item,index){return item>2});// [3, 4, 5]
 
 

就写到这了,下班,哈哈,不对的欢迎报错哦!!!

时间: 2024-08-01 06:33:13

数组那些事(slice,splice,forEach,map,filter等等)的相关文章

js数组遍历some,foreach,map,filter,every对比

1. [...].some(ck)函数       ----      某个一个为true,则为true 对数组中每个元素执行一次ck函数,知道某个元素返回true,则直接返回true.如果都返回false,则返回false 检查整个数组中是否有满足ck函数的元素. var result = [1,5,3,6].some(  (v,i)  =>  (v>10) )      //所有元素都不满足,返回result = false var result = [10,5,30,60].some(

处理数组的forEach map filter的兼容性

处理数组的forEach 1 //forEach处理 2 if(!Array.prototype.forEach) { 3 Array.prototype.forEach = function (callback) { 4 for(var i=0,len=this.length;i<len;i++) { 5 callback(this[i], i); 6 } 7 } 8 } 处理数组的map 1 //处理map 2 if(!Array.prototype.map) { 3 Array.proto

数组方法重写:forEach, map, filter

Array.prototype.myForEach = function(fn) { var arr = this, len = arr.length, arg2 = arguments[1] || window; for(var i = 0; i < len; i++) { fn.apply(arg2, [arr[i], i, arr]); } }; Array.prototype.myFilter = function(fn) { var arr = this, len = arr.leng

ES5中Array新增加的API接口 forEach map filter some every indexOf lastIndexOf reduce reduceRight

var array = [23,48,66,2]; forEach:循环.遍历数组:没有返回值.与for循环类似 array.forEach(function( value, index, array ) { console.log(value); return value * value; } ); map:映射的意思,映射返回一个新数组,有返回值;filterArr:返回一个新对象 var mapArr = array.map(function(value, index, array ){

JS中some(),every(),forEach(),map(),filter()区别

map():返回一个新的Array,每个元素为调用func的结果 filter():返回一个符合func条件的元素数组 some():返回一个boolean,判断是否有元素是否符合func条件 every():返回一个boolean,判断每个元素是否符合func条件 forEach():没有返回值,只是针对每个元素调用func API的区别 function my_func(item) { if (item == 1) { console.log('t'); return true; } con

forEach, map, filter方法区别

听说for循环已经成了菜鸟标配...? 瑟瑟发抖 赶紧找来资料补一补 1, forEach循环,循环数组中每一个元素并采取操作, 没有返回值, 可以不用知道数组长度 2, map函数,遍历数组每个元素,并回调操作,需要返回值,返回值组成新的数组,原数组不变 3,filter函数, 过滤通过条件的元素组成一个新数组, 原数组不变 4, some函数,遍历数组中是否有符合条件的元素,返回Boolean值 5,every函数, 遍历数组中是否每个元素都符合条件, 返回Boolean值 原文引用:htt

Array 的五种迭代方法 -----every() /filter() /forEach() /map() /some()

ES5定义了五个迭代方法,每个方法都接收两个参数:要在每一项上运行的函数和运行该函数的作用域对象(可选的),作用域对象将影响this的值.传入这些方法中的函数会接收三个参数:数组的项的值.该项在数组中的位置和数组对象本身. 1.every() 和 some() every()是对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true. some()是对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true. every()和some()很相似,他们都用于

javascript 常见数组操作( 1、数组整体元素修改 2、 数组筛选 3、jquery 元素转数组 4、获取两个数组中相同部分或者不同部分 5、数组去重并倒序排序 6、数组排序 7、数组截取slice 8、数组插入、删除splice(需明确位置) 9、数组遍历 10、jQuery根据元素值删除数组元素的方)

主要内容: 1.数组整体元素修改 2. 数组筛选 3.jquery 元素转数组 4.获取两个数组中相同部分或者不同部分 5.数组去重并倒序排序 6.数组排序 7.数组截取slice 8.数组插入.删除splice(需明确位置) 9.数组遍历 10.jQuery根据元素值删除数组元素的方法 数组常见操作包含了 增.删.查.改.插入.交集.并集 1.数组整体元素修改 //map,给数组每个元素加1 输出[1,2,3] $.map([0,1,2],function(n){ return n+1; })

js数组的concat, slice, splice方法

//数组的方法 //1. concat() (concat的英文释义:合并数组;合并多个字符串;) var colors = ["red", "green", "blue"]; var color2 = colors.concat("yellow", ["black", "brown"]); console.log(colors);//["red", "gr