周五,再过会要下班了,刚才把《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]
 
 

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

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

  1. 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight

    做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...

  2. js中数组的循环与遍历forEach,map

    对于前端的循环遍历我们知道有 针对js数组的forEach().map().filter().reduce()方法 针对js对象的for/in语句(for/in也能遍历数组,但不推荐) 针对jq数组/ ...

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

    1.  [...].some(ck)函数       ----      某个一个为true,则为true 对数组中每个元素执行一次ck函数,知道某个元素返回true,则直接返回true.如果都返回f ...

  4. ES6新增的常用数组方法(forEach,map,filter,every,some)

    ES6新增的常用数组方法 let arr = [1, 2, 3, 2, 1]; 一 forEach => 遍历数组 arr.forEach((v, i) => { console.log( ...

  5. ES5 的 forEach, map, filter, some, every 方法

    1:  forEacharray.forEach(callback,[ thisObject]) // 遍历数组里面的所有数字// item 是值, i 是序号, array 是整个数组 [1, 2 ...

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

    处理数组的forEach //forEach处理 if(!Array.prototype.forEach) { Array.prototype.forEach = function (callback ...

  7. ES6 数组方法 forEach map filter find every some reduce

    1. forEach const colors = ['red', 'blue', 'green'] colors.forEach(function (params) { console.log(pa ...

  8. js数组方法forEach,map,filter,every,some实现

    Array.prototype.map = function(fun /*, thisp*/) { var len = this.length; if (typeof fun != "fun ...

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

    JS在1.6中为Array新增了几个方法map(),filter(),some(),every(),forEach(),也就是一共有这么多方法了. 刚开始接触这些倒也记得不是很清楚,在此纪录一下以加深 ...

随机推荐

  1. 数组foreach

    简单使用 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  2. Atcoder arc092

    E-Both Sides Merger 给你一个序列,支持两种操作,直到序列中只有一个数时停下来,使得剩下数最大,并输出选数方案. 操作1:扔掉一个最前端或最后端的元素.操作2:选取一个不在边界上的元 ...

  3. TopCoder[SRM587 DIV 1]:ThreeColorability(900)

    Problem Statement      There is a H times W rectangle divided into unit cells. The rows of cells are ...

  4. Win7如何部署定制的Quicklaunch图标

    在严格的网络管理环境中,最终用户的权限被限制得比较严格,被禁止随意改变系统的行为.在我们的网络环境中,学生是被禁止添加/删除QuickLaunch上的图标的,不仅如此,无线网络,打印机等等,都受到严格 ...

  5. sqoop导出数据|Hive|HDFS和脚本编写

    导出数据 在Sqoop中,“导出”概念指:从大数据集群(HDFS,HIVE,HBASE)向非大数据集群(RDBMS)中传输数据,叫做:导出,即使用export关键字. HIVE/HDFS到RDBMS ...

  6. CSDN首页> 云计算 孙玄:解析58同城典型技术架构及演变

    转:http://www.csdn.net/article/2015-04-09/2824437 在UPYUN主办的“UPYUN Open Talk”第三期北京站上,58同城系统架构师孙玄详细介绍了5 ...

  7. [转] undefined reference to `clock_gettime'

    下面这个错误通常是因为链接选项里漏了-lrt,但有时发现即使加了-lrt仍出现这个问题,使用nm命令一直,会发现-lrt最终指向的文件 没有包含任何symbol,这个时候,可以找相应的静态库版本lib ...

  8. POJ 2763 /// 基于边权的树链剖分

    题目大意: 给定n个结点,有n-1条无向边,给定每条边的边权 两种操作,第一种:求任意两点之间路径的权值和,第二种:修改树上一点的权值. 因为是一棵树,可以直接把 u点和v点间(假设u为父节点,v为子 ...

  9. 2018今日头条湖北省赛【D】

    [题目链接]https://www.nowcoder.com/acm/contest/104/C 不知道这题为啥没过.队友现场推的都是对的..233333好像代码写的有问题,下来就很恼火. 题意大概就 ...

  10. docker集群管理之swarm

    一.简介 docker集群管理工具有swarm.k8s.mesos等,我所用到的是swarm和k8s,这篇文章主要介绍swarm:swarm是docker集成的原生 管理工具,只要你安装上docker ...