码迷,mamicode.com
首页 > 编程语言 > 详细

一个实例全析js数组(17)

时间:2018-12-28 20:44:32      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:images   term   多个   判断   reducer   unshift   图片   str   ret   

前言:
数组和对象一样是数值的集合,不同的是每一个数值有一个名字(对象),而对象中每个数值都有一个下标。

①数组的创建

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd"];
alert(a);

技术分享图片

②将数组进行排序

a.sort();
alert(a);

技术分享图片

③把数组中所有的元素连接起来转换成字符串

我们可以看到,数组转为字符串之后,看不出有什么变化,因此这里引入判别书否为数组的方法。

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd"];
var test = a instanceof Array;
alert("你是数组吗?"+test);
var b = a.join();
test = b instanceof Array;
alert("你是数组吗?"+test);

技术分享图片

④数组颠倒顺序排列(直接把数组内的元素倒序排列,没有规则)

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd"];
a.reverse();
alert(a);

技术分享图片

⑤数组拼接

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd"];
var b = ["red","ant","rd_ant"];
var c = a.concat(b);
alert(c);

技术分享图片

也可以随便拼接
var c = a.concat(b,a,b,b);
alert(c);

技术分享图片

⑥数组转字符串

数组的toString(),valueOf()方法可以实现数组以字符串的形式输出,但存在差异。
toString()是将所有内容转为字符串,
valueOf()是取出对象内部的值,不进行类型转换。

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd"];
var b = a.toString();
var test = b instanceof Array;
alert("b你是数组吗?"+test);
var c = a.valueOf();
test = c instanceof Array;
alert("c你是数组吗?" + test);

技术分享图片

⑦字符串转数组(split()方法)

var d = "大,家,好,我,是,Red, Ant";
var e = d.split(",");
alert(e);
test = e instanceof Array;
alert("e是数组吗?"+test);

技术分享图片

⑧数组元素截取(slice方法)

这种方法不会修改原数组,只会返回一个新的数组。

    var a = new Array(10);
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.slice(5);
    var c = a.slice(4,7);
    alert(b);
    alert(c);

技术分享图片

⑨数组元素的删除

数组元素的删除有三种方法:pop(),shift(),splice()。
Pop():值得是删除最后一个元素,并返回该元素的值。
Shift():移除最前一个元素并返回该元素,数组中的元素自动前移
Splice(位置,数量):删除指定位置开始的指定长度的元素,数组的形式返回所移除的数组。
Splice():还可以用于数组元素的插入。

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.pop();
alert("删除最后一个元素得到的数组为:"+a);
alert("被删除的元素是:"+b);

技术分享图片

    var a = new Array(10);
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.shift();
    alert("删除第一个元素得到的数组为:"+a);
    alert("被删除的元素是:"+b);

技术分享图片

    var a = new Array(10);
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.splice(3,4);
    alert("删除后的数组为:"+a);
    alert("得到被删除的数组:"+b);

技术分享图片

Splice();数组的插入
同样splice(a,b,....):
a同样是操作的位置,b我们设置为0这样就不会删除数组,后面放置一系列的要插入的元素即可。

    var a = new Array(10);
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    a.splice(-3,0,"red","ant","rd_ant");
    alert("从倒数第三位插入后的数组为:"+a);

技术分享图片

⑩数组元素的添加

splice();元素的插入方法也是数组元素的添加。
Push是我们最常见的数组元素添加方法,是将一个或多个新元素添加到数组的结尾,并返回新数组的长度。
Unshift()与shift()对应的方法,将1一个或多个元素添加到数组的开始,数组中的元素自动后移,返回新的数组长度。与push相对应。

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.push("red","ant","red_ant");
alert("结尾处push之后的数组为"+a);
alert("当前数组的长度为"+b);

技术分享图片

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.unshift("red","ant","red_ant");
alert("开始位置unshift之后的数组为"+a);
alert("当前数组的长度为"+b);

技术分享图片

?数组元素查找indexOf(),lastIndexOf()【IE低版本不兼容】

indexOf():接收两个参数要查找的项和起点位置的索引(可选)
lastIndexOf():同样不过,该方法是从后往前查找。

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.indexOf("test");
var c = a.lastIndexOf(5);
alert("位置"+b);
alert("位置"+c);

技术分享图片

数组是否包含某元素:Jquery写法

var a = [1,2,3,4,5,"red_ant"];//=15
var index = $.inArray("red_ant", a);
if(index > 0){
    alert("好,告诉我你的位置"+ index);
}else{
    alert("不存在该元素");
}

技术分享图片

?数组循环遍历forEach()【IE低版本不兼容】

    var a = new Array(10);
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var d = "";
    a.forEach(function(b, c, a){
        d += "索引"+c+"元素"+b+"//"
    })
    alert(d);

技术分享图片

?数组映射map()【IE低版本不兼容】

Map()对数组中的每一项运行给定函数,返回函数调用的结果组成的数组。
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.map(function(item){
        return item+"Red_Ant";
    })
    alert(b)

技术分享图片

?数组元素过滤filter()【IE低版本不兼容】

数组中的每一个元素给定函数,返回满足条件组成的数组。

    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.filter(function(i, inxdex){
        if(i == "test" || i == "abcd"){
            return false;
        }
        return i;
    })  
    alert(b);

技术分享图片

?判断数组中的每一项是否满足条件,所有都满足才会返回true的方法every()【IE低版本不兼容】

var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.every(function(i){
    return i != "test"; 
})
alert(b);

技术分享图片

    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.every(function(i){
        return i != "asdadadadas";  
    })
    alert(b);

![](http://i2.51cto.com/images/blog/201812/28/ed6409fd4d4d86e5b7e5170649f5de44.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

?判断数组中是否存在满足条件的项,有一个就是true的方法some()【IE低版本不兼容】

var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.some(function(x){
    return x == 3;
})
alert(b);

技术分享图片

?迭代数组的所有项,然后构建最终返回值。Reduce(),reduceRight()【IE低版本不兼容】

Reduce()从数组的第一项开始遍历到最后,reduceRight()则倒序。
他们都可以接受4个参数:前一个值,当前值,项的索引,数组对象
我们可以利用这个求和等

    var a = [1,2,3,4,5];//=15
    var b = a.reduce(function(pre,now,index,arrays){
        return pre + now;
    })
    alert(b);

技术分享图片

一个实例全析js数组(17)

标签:images   term   多个   判断   reducer   unshift   图片   str   ret   

原文地址:http://blog.51cto.com/13479739/2336610

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!