js 数组传统方法

push()

功能:向数组的末尾添加一个或多个元素

var arr = [4];
arr.push(1,2,3); // [4,1,2,3]

返回: 会返回新数组的长度length

pop()

功能:删除数组的最后一个元素

var arr = [1,2,3,4];
arr.pop(); // [1,2,3]

返回:会返回被删除后的新数组

unshift()

功能:向数组的开头添加一个或者多个元素

var arr = [1,2,3,4];
arr.unshift(7); // [7,1,2,3,4]

返回:会返回新的数组长度length

shift

功能删除数组的第一个元素

var arr = [1,2,3,4];
arr.shift(); // [2,3,4]

返回:会返回被删除后的新数组

数组的遍历 :

function Person(name,age) {
this.name = name ;
this.age = age;
}; var per1 = new Person('a',12),
per2 = new Person('b',14),
per2 = new Person('c',11),
perArr = [per1,per2,per3];
function getAdult(arr){
var newArr = [];
for(var i=0;i<arr.length;i++) {
if(arr[i]['age']>12) {
newArr['push'](arr[i]);
}
}
return newArr;
};

slice()

功能:从数组中提取元素
参数:
1: 截取开始位置的索引
2: 截取结束位置的索引
第二个参数可以省略不写,表示从start开始的后边都被截取
( 包头不包尾 )
第二个 参数 还可以传入一个负值 表示 从后开始数

var result = array.slice(start,end);

var arr = [1,2,3,4];
var newArr = arr.splice(1,-1); //[2,3] -1代表4

返回:不会影响原数组,返回截取完之后的新数组

splice()

功能:删除数组中的指定元素,或是添加加元素到指定位置
参数:
1: 表示开始位置的索引
2: 表示删除的个数
3: 可以讲这些元素自动插入到开始位置索引前边

var arr = [1,2,3,4,5];
arr.splice(0,2,1212); //[1212,3,4,5] arr.splice(0,0,1212121); //往第一个参数的前面添加元素 [1212121,1,2,3,4,5]

数组去重:

var arr = [1,2,2,3,4,4,3,4,4,5,5,7];
for (var i = 0; i < arr.length; i++) {
for (var j = 1+i; j < arr.length; j++) {
if(arr[i]===arr[j]) {
arr.splice(j,1);
j--; //注意删了一位后,后面的数自动往前推一位,导致相邻的一位没有被比较
} } }
console.log(arr);

concat()

功能:连接两个或是多个数组

var arr = [1,2];
var arr1 = [22,33];
var newArr = arr.concat(arr1);

返回:会返回链接之后的新数组

join()

功能:将数组转换成为一个字符串,不会对原数组产生影响
参数:可以指定一个字符串作为参数,这个字符串会成为数组中元素的连接符,默认为‘,’l连接

var arr = [1,2];
var result = arr.join(); //'1,2' var result = arr,join(''); //'12'

返回:会返回新的数组

reverse()

功能:反转数组

var arr = [1,2,3,4];
arr.reverse(); // [4,3,2,1]

返回:会返回反转之后的新数组

sort()

功能:数组排序,会影响原数组,默认按照unicode编码进行排序,从小到大
参数:回调函数
会分别使用数组中的元素作为实参去调用回调函数
会根据回调函数的返回值来决定元素的位置
若返回一个大于0的则元素 交换位置
若返回一个小于0的则元素 位置不变
若返回一个==0的则元素 位置不变

var arr2 = [1,4,5,6,3,65,11];
arr2.sort(function(a,b) {
if(a>b) {
//前边大 换位置(升序)
return 1;
} else if(a<b){
return -1;
} esle {
return 0;
}; //return a-b; 同上(升序)
//return b-a;(降序)
});

toString()

功能:将数组转化为字符串

var arr = [1,2,3,4];
arr.toString(); // "1,2.3,4"

js 数组传统方法的更多相关文章

  1. 小兔JS教程(四)-- 彻底攻略JS数组

    在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...

  2. js数组学习整理

    原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...

  3. 转→js数组遍历 千万不要使用for...in...

    看到一篇内容还不错,但是排版实在糟糕, 逼死强迫症患者啊,直接拉下去找原文连接,找到了,但是已经消失了···500错误... 第一次因为实在看不下去一篇博客的排版, 为了排版而转载... 转载地址:h ...

  4. js数组操作大全

    原文(http://www.cnblogs.com/webhotel/archive/2010/12/21/1912732.html) 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简 ...

  5. js数组去重的4种方法

    js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array.prototype.inde ...

  6. js 数组处理函数

    本文转载自有有<js 数组处理函数> concat 将参数列表连接到原数组后面形成一个新的数组并返回,原有数组不受影响. var arr = ["a","b& ...

  7. js 数组赋值问题 :值传递还是引用?

    转载于知乎var a = [1,2,3]; var b = a; a = [4,5,6]; alert(b); //[1,2,3] 面试时被问到这样一个问题,竟然从来没试过... 当时直接的理解,数组 ...

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

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

  9. js数组操作

    用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学! ...

随机推荐

  1. Django 基础篇(二)视图与模板

    视图 在django中,视图对WEB请求进行回应 视图接收reqeust对象作为第一个参数,包含了请求的信息 视图就是一个Python函数,被定义在views.py中 #coding:utf- fro ...

  2. luoguP3964 [TJOI2013]松鼠聚会

    链接 luogu 思路 切比雪夫距离有max,不好优化. 但是我们能转化成曼哈顿距离,只需要 \((x,y)变成(\frac{x+y}{2},\frac{x-y}{2})\) 相反的曼哈顿距离转切比雪 ...

  3. A#G/C013

    A#G/C013 A Sorted Arrays 不会/kk B Hamiltonish Path 我是傻逼 如果一条路径不合法,那么把不合法的端点向没出现过的相邻点连过去救星了 C Ants on ...

  4. Android编程权威指南笔记2:解决R文件爆红问题和SDK概念

    在android studio中会遇到R文件的丢失,所以遇见这问题怎么解决呢? 重新检查资源文件中xml文件 最近一次编译时如果未生成R.java文件,项目中资源引用的地方都会出错.通常,这是某个xm ...

  5. Navicat配置跳板机连接数据库

    需求 在开发中,有时候我们会碰到这么一个情况.数据库的服务器在内网,如果想连接,必须得先ssh登陆到跳板机,然后在跳板机ssh到达数据库所在服务器,进而操作数据库.遗憾的是,如果跳板机和数据库所在服务 ...

  6. 【AtCoder】 ARC 096

    link C-Half and Half 题意:三种pizza,可以花\(A\)价钱买一个A-pizza,花\(B\)价钱买一个B-pizza,花\(C*2\)价钱买A-pizza和B-pizza各一 ...

  7. 【cf比赛记录】Codeforces Round #600 (Div. 2)

    Codeforces Round #600 (Div. 2) ---- 比赛传送门 昨晚成绩还好,AC A,B题,还能上分(到底有多菜) 补了C.D题,因为昨晚对C.D题已经有想法了,所以补起题来也快 ...

  8. SpringBoot:缓存注解@Cacheable详解

    1.查看@Cacheable @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @ ...

  9. Java之创建文件并写入数据

    应用场景:以OJ项目为例,创建对应的.in或.out文件,并将相关的数据写入. 核心代码如下: /** * 创建文件 * @param data * @param basedir * @param n ...

  10. Win10登陆界面卡住,进去后无法打开网络相关的设置,谷歌浏览器无法上网

    今天Win10抽风,进入登录页面输入用户名和密码之后,大约过了10分钟才进入桌面.重启后仍然如此. 经过调查,问题主要出在网络相关模块上,网络无法正常初始化,导致登录一直卡在网络初始化上. 解决方法如 ...