一:数组方法
var arr = [];
1.arr.push()//给数组末尾<添加>元素
2.arr.unshift()//给数组头部<添加>元素
3.arr.shift()//删除数组<头部>元素//返回值为被删除的元素
4.arr.pop()//删除数组<末尾>的元素//返回值为被删除的元素
看图示意:    
   头部             尾部
    ↑                ↑
unshift-----添加-----push
    ↑                ↑
shift-------删除-----pop
 
5.arr.splice(从那个下标开始操作,删除的数量,添加的元素1,添加的元素2,添加的元素3...)//万能法返回值为被删除元素的数组[被删除元素];
注:以上五种方法会改变原数组
6.arr.join()默认用英文下的都好拼接,可改变拼接的字符串arr.join('-')
eg:
1)    var arr = ['2018','1','23'];
    var newArr = arr.join('/');
    console.log(newArr);结果为 2018/1/23;
2)页面跳转后,顶部地址栏中的信息变化的拼接.
    var param = {
        q:'棉衣';
        commend:'all';
        search_type:'item';
    }
    var Aparam = []; //定义数组存放param对象中的属性和属性值.
    for(var attr in param){  //遍历对象中的每一个属性. attr为属性的下标
        Aparam.push(attr + "=" + Aparam[attr]);//输出结果为 q=棉衣commend=allsearch_type=item
    }
    console.log(Aparam.join('&'));输出结果为q=棉衣&commend=all&search_type=item
7.arr.slice(从哪个下标开始分割,到那个下标的后一个下标点结束分割.);//支持-1,但从又开始分割.下标依然从做开始0123...
8.arr.concat(arr2);//合并数组arr和数组arr2;
9.arr.reverse()//改变原数组的元素顺序
10.arr.sort()//数组的排序但一般情况下会在sort中自定义一个比较大小的函数
eg:     
   var arr = [103,500,204,300];
    arr.sort(
        function (a,b) {
            if(a>b){
                return 1;//返回值1则a,b互换位置
            } else{
                return -1;//返回值为-1则a,b不换位置
            }
        }
    )
    console.log(arr);//输出结果为103,204,300,500;
 
 
二:新增方法
a)新增函数方法
1.bind()// 返回值为一个新的函数.bind改变的是该函数内部的this指向.this默认指向为window;
eg:    
var obj = {
        name: '马冬梅'
    };
    var name = '宋东浦';
    function hello(x, y) {
    var name = '胡锋';
        console.log(arguments);
        console.log(this.name);//this指向window.全局变量为window自身的属性.
        console.log(x + y);
    }
    var newHello = hello.bind(obj, 6); this =obj  将obj的对象地址赋值给this.此时this指向为obj这个对象
    newHello(7, 9);//最终结果为马冬梅13.9也是所传入的一个实参但是没有一个形参去接收他.
 
 
b)新增数组方法
1.arr.forEach(function(v,k,arr){},context)  //循环数组
v代表数组中的元素,k代表v这个元素的下标,arr代表整个数组.context代表回调函数中this所指向的地址
eg:   
var arr = [1,3,5,4,9,7];
    arr.forEach(function(v,k,arr){
        console.log(this)  // this指向context
        console.log(v,k,arr)
    },'this所指向的地址');
 
 
注:使用forEach()这个方法可以遍历数组.使用多用在this指向.
2. arr.map(function(v,k,arr){},context)//语法与forEach相同,也是遍历数组,但需要一个变量 来接收返回的值.
var newArr = arr.map(function(v){
    return  v *= 2;
})
console.log(newArr);
注:返回值为数组的每个元素的2倍.
3.arr.filter(function(v,k,arr){},context)//语法与前两个相同,遍历数组的作用,
eg:    
var arr = [3,6,2,7,9,1]
    var newArr = arr.filter(function(v){
    if(v >5){
        return true;  结果为true会将v这个元素返回出去.
    } else {
        return false;
    }
})
 
 
console.log(newArr); //输出结果为6,7,9
注:过滤数组中大于5的元素并输出
4.arr.some(function(v,k,arr){},context)//返回值为boolean类型  true或false
eg:    
var newArr = arr.some(function(v){
    if(v > 5){
        return true;
    } else {
        return false;
    }
})
 
 
注:some是只要数组中有一个满足条件返回值都为true.否则为false
5.arr.every(function(v,k,arr){},context)//返回值为boolean类型  true或false
eg:    
var newArr = arr.every(function(v){
    if(v > 5){
        return true;
    } else {
        return false;
    }
})
 
 
注:every是当数组中的所有元素满足条件时,返回为true.否则返回false
6.arr.indexOf(a,b)//在数组中查找元素.返回结果为所找到的元素的下标,则返回-1 a为所需查找的元素,b为从哪里开始的下标.b可以为负值
注:从左往右开始查找区别于7.
7.arr.lastIndexOf(a,b)//作用与indexOf相同,但是lastIndexOf是从右往左开始查找.
8.归并或递归减少
    arr.reduce(function(previous,current,index,arr){},initialValue)
    previous 为上一次计算的结果,若没有进行计算或者初始化值,则默认数组的第一个元素为revious.
    current 为当前数组的元素,若没有进行计算或者初始化赋值则默认为第二个元素,
    index 为current的元素的下标.
    arr 为整个的数组
    initialValue 为初始化的值相当于给previous赋初始化的值.
eg: 
var arr = [1,4,7,9];
    var result = arr.reduce(function(previous,current,index,arr){
        console.log(previous,current,index,arr);
        return previous + current;
    },10);
    console.log(result);
 
 
解析:    previous的初始值为initialValue所赋的值 = 10;
    此时current当前值为1,;
    return 10 + 1;
    previous 为上一次计算得结果,所以为11;
    当前值变为4;
    return 11 + 4 +7 +9;
    最终结果为31;
9.  arr.reduceRight(function(previous,current,index,arr){},initialValue);
注:用法与arr.reduce相同,但是计算是是从右往左开始查找元素.
10.Array.isArray():判断一个变量是否为数组               返回结果为true  或者false
三:字符串新增
1.str.trim() 去掉输出结果左右两侧的空格.
eg:    
console.log(str.trim());
 
2.var obj = {name:'苏三',age:'80'}
    console.log(JSON.stringify(obj));
注:将对象格式化为一个字符串
3.var str = '{ "name":"苏三","age":"80" }'; 其中的双引号不能少,必须写上.
console.JSON.parse(str);
注:将一个JSON格式的字符串变为一个对象.   JSON格式其实指的就是对象的格式,全称为  javascript object notation;
四:字符串
1.属性:
console.log(str.length);
console.log(str.constructor);
五:字符串的方法
    var str= 'hello world';
1.console.log(str.charAt(4));输出结果为o.4为下标.输出字符串中的某个元素,
2.console.log(str.charCodeAt(4));输出结果为111.这里的4指的是下标为4的字符所代表的ASCll码值.o的ASCLL值为111;
3.console.log(String.fromCharCode(111));输出结果为o  根据ASCLL码值进行转换.
是静态转换.可理解为一条单独的输出语句.输出的结果与定义的字符串无任何关系.详情参照ASCLL码表
4.console.log(str.indexOf('e'));与数组的新增方法arr.indexOf()相同,都是查找元素,找到后返回该元素的下标,找不到返回-1;
5.console.log(str.lastIndexOf(e));与数组的新增方法arr.lastIndexOf()相同.
6.console.log(str.match('ll'));匹配字符串中的字符,匹配的到,输出结果为数组,匹配不到输出结果为null.(结合正则来用.)
7.console.log(str.search('ll'));如果匹配到的元素则返回元素的下标.如果找不到则返回-1;输出结果与indexOf相同
配合正则使用
8.console.log(str.replace('ll','**'))替换字符串中的某元素,将子字符串中的ll转换为**
9.console.log(str.slice(a,b));用法与数组的分割相同.
难点:分割点到所需要分割的重点的后一个下标为止.
10.console.log(str.substring(a,b))用法与slice相同但是区别:这里的a,b不能赋负值.
11.console.log(str.substr(a,b));a为这里分割的起止点,b为分割的长度.
注:尽量不要使用,ECMA为对其进行规定.各大浏览器可能不支持,不建议使用.
12.console.log(str.split('ll'))切割字符串中的ll.扔掉ll并返回一个数组.
eg:    
var str = 'a=b&c=d&e=f';
    console.log(str.split(&));输出结果为a=b,c=d,e=f;
 
13.console.log(str.toUpperCase());将字符串的所有字母转换为大写.
14.console.log(str.toLowerCase());将字符串中的所有字母转换为小写.
 
 

(五)js数组方法二的更多相关文章

  1. 转载收藏(js数组方法大全)

    js数组方法大全 JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Arra ...

  2. js数组方法大全(下)

    # js数组方法大全(下) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 forEach() map() filer() every() some() ...

  3. js 数组方法比较

    js 数组方法比较 table th:first-of-type { width: 80px; } table th:nth-of-type(2) { width: 120px; } table th ...

  4. js数组方法详解

    Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...

  5. js数组方法大全(上)

    # js数组方法大全(上) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 join() reverse() sort() concat() slice( ...

  6. 几个关于js数组方法reduce的经典片段

    以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...

  7. js数组方法大全

    JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // ...

  8. js数组方法详解(最新最全)

    数组是js中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效的提高我们的工作效率,同时对我们的代码质量也是有很大影响.本文所有的栗子都是在es7环境下测试的,如果有问题欢迎留言交流 ...

  9. JS数组方法汇总 array数组元素的添加和删除

    js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[ ...

随机推荐

  1. LeetCode:N叉树的层次遍历【429】

    LeetCode:N叉树的层次遍历[429] 题目描述 给定一个 N 叉树,返回其节点值的层序遍历. (即从左到右,逐层遍历). 例如,给定一个 3叉树 : 返回其层序遍历: [ [1], [3,2, ...

  2. 再来一道测半平面交模板题 Poj1279 Art Gallery

    地址:http://poj.org/problem?id=1279 题目: Art Gallery Time Limit: 1000MS   Memory Limit: 10000K Total Su ...

  3. Educational Codeforces Round 11A. Co-prime Array 数学

    地址:http://codeforces.com/contest/660/problem/A 题目: A. Co-prime Array time limit per test 1 second me ...

  4. Linux网络接口配置文件ifcfg-eth0解析

    本文转自:http://blog.csdn.net/jmyue/article/details/17288467 在Windows上配置网络比较容易,有图形化界面可操作.在Linux中往往是通过命令修 ...

  5. Vim:gvim安装配置(windows)

    Vim:gvim安装配置(windows) 一.gvim的特点: vim要求全部键盘操作,而gvim可以使用鼠标进行可视化操作,即gvim是vim的图形化界面: 二.gvim安装: 下载地址:http ...

  6. Javascript何时执行

    分以下两种情况: 1.HTML head部分的Javascript会在被调用的时候执行 需要调用才执行的脚本或事件触发执行的脚本放在head部分,这可以保证脚本在任何调用之前被预先加载,在页面加载完之 ...

  7. nginx 第一天

    来公司第一天先装了一下nginx 第一步:  先装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/ ...

  8. 用maven创建web工程

    1.打开eclipse,选择File->New->Other菜单,弹出下面的对话框,在Wizards中输入maven,会过滤出和maven相关的菜单,选中Maven Project菜单,然 ...

  9. [Bzoj]5343: [Ctsc2018]混合果汁

    5343: [Ctsc2018]混合果汁 题目描述 小 R 热衷于做黑暗料理,尤其是混合果汁. 商店里有 \(n\) 种果汁,编号为 \(0,1,\cdots,n-1\) .\(i\) 号果汁的美味度 ...

  10. java基础(3)--8种基本类型

    八种基本类型 数据类型分为两大类:基本类型,引用类型 基本类型有8种,除了基本类型(8种)以外任何类型都是引用类型.如: String 是引用类型 基本类型有8种(首字母是小写): 整数:byte, ...