1.数组的定义

  格式1:var arr=[1,2,3];

  格式2:var arr=new Array(1,2,3); //new可以省略

  注意:var arr=new Array(4);如果你里面只写了一个数字,代表arr的长度为4

2.length属性的特性:不仅可以返回字符串的长度,还可以移除或者添加新项

  var arr2=['包子','卤肉卷','卤豆腐','鸡爪','牛肉丸'];

  移除项示例:

  arr2.length=4;

  console.log(arr2);//返回数组["包子", "卤肉卷", "卤豆腐", "鸡爪"]

  增加项示例:

  arr2[arr2.length]='冰淇淋';

  console.log(arr2);//返回数组["包子", "卤肉卷", "卤豆腐", "鸡爪", "牛肉丸", "冰淇淋"]

  arr2[10]='冰淇淋';

  console.log(arr2);//返回数组["包子", "卤肉卷", "卤豆腐", "鸡爪", "牛肉丸",,,,,, "冰淇淋"],此时数组的长度为11

  清空数组的方法:

  方法1:arr.length=0; //方法较简单,字符串的length属性不可写!!!

  方法2:arr=[]; //处理效率更高

3.数组添加内容的方法:

  var arr=[1,2,3];

  方法1:push():从后开始添加数据

  console.log(arr.push('aa')); //返回结果4,代表新的数组的长度

  console.log(arr);//返回结果[1,2,3,'aa']

  方法2:unshift():往前开始添加数据 

  console.log(arr.unshift('aa')); //返回结果4,代表新的数组的长度,IE7及以下不支持

  console.log(arr);//返回结果['aa',1,2,3,]

4.数组去掉内容的方法

  var arr2=['包子','卤肉卷','卤豆腐','鸡爪','牛肉丸'];

  方法1:pop():从后开始扔掉数据

  console.log(arr2.pop()); //返回‘牛肉丸’,即数组最后一项

  console.log(arr2);//返回结果["包子", "卤肉卷", "卤豆腐", "鸡爪"]

  方法2:shift():往前开始扔掉数据

  console.log(arr2.shift()); //返回‘包子’,即数组第一项

  console.log(arr2);//返回数组["卤肉卷", "卤豆腐", "鸡爪", "牛肉丸"]

5.splice()方法:

  该方法可以同时实现删除,插入,替换的功能。始终会返回一个数组,数组包含了从原始数组中删除的项(如果没有删除任何项,则返回一个空数组)。

  删除:指定2个参数,即要删除的第一项位置和要删除的基数。

  插入:指定3个参数:起始位置、0和要插入的项。

  替换:指定3个参数:起始位置、要删除的项数和要插入的项。

  var arr2=['包子','卤肉卷','卤豆腐','鸡爪','牛肉丸'];

  var removed = arr2.splice(0,2);

  console.log(removed);  //返回"['包子','卤肉卷',]"

  console.log(arr2);    //返回"['卤豆腐','鸡爪','牛肉丸']"

  var removed = arr2.splice(1,0,"糖油粑粑","臭豆腐");

  console.log(removed);  //返回"[]"

  console.log(arr2);    //返回"['卤豆腐','糖油粑粑','臭豆腐','鸡爪','牛肉丸']"

   

  var removed = arr2.splice(2,1,"麻油猪血","酸辣粉");

  console.log(removed);  //返回"['臭豆腐']"

  console.log(arr2);    //返回"['卤豆腐','糖油粑粑','麻油猪血','酸辣粉',鸡爪','牛肉丸']"

6.数组去重:
var arr3 = [1,5,5,8,7,4,5];
for(var i=0;i<arr3.length;i++){
for(var j=i+1;j<arr3.length;j++){
if(arr3[i] == arr3[j]){
arr3.splice(j,1);
j--;
}
}
}
console.log(arr3);//返回"[1, 5, 8, 7, 4]"
7.重排序方法

  reverse():反转数组项的顺序

  var arr4 = [1,2,8,4,5,'bb','123',32];

  console.log(arr4.reverse()); //返回"[32, "123", "bb", 5, 4, 8, 2, 1]"

  sort():默认情况按升序排列数组,它比较的是字符串。此方法可以接收一个比较函数作为参数,以便我们指定哪个值位于哪个值的前面。

//升序
function ascCompare(val1 , val2){
if(val1 < val2){
return -1;
}else if(val1 > val2){
return 1;
}else{
return 0;
}
}
//降序
function descCompare(val1 , val2){
if(val1 < val2){
return 1;
}else if(val1 > val2){
return -1;
}else{
return 0;
}
}
//对于数值类型可以用更简单的比较函数
function numCompare(val1 , val2){
return val1-val2; //升序
//return val2-val1; 降序序
}
var arr6 = [1,2,8,4,5,32];
console.log(arr6.sort(ascCompare)); //返回'[1, 2, 4, 5, 8, 32]'
console.log(arr6.sort(descCompare)); //返回'[32, 8, 5, 4, 2, 1]'
8.concat():

  数组的拼接,传递给concat()方法可以是数组,也可以是字符串。

  var colors=['red','green','blue'];

  var colors2 = colors.concat("yellow",["back","brown"]);

  console.log(colors2); //返回'["red", "green", "blue", "yellow", "back", "brown"]'

js学习笔记13----数组的操作的更多相关文章

  1. JS学习笔记 (四) 数组进阶

    1.基本知识 1.数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中的位置称为索引,以数字表示,以0开始. 2.数组是无类型的.数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的 ...

  2. PHP学习笔记之数组游标操作

    数组有N个单元,同时只能操作一个单元.比如循环时,只能一个一个单元读取他的值. 那么数组是怎么记住刚才读取的是哪个单元,接着读取下个单元的呢? 在数组内部,有一个指针,指针指向某一个单元. 每循环一个 ...

  3. [前端JS学习笔记]JavaScript 数组

    一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {&qu ...

  4. 【学习】js学习笔记:数组(二)

    二维数组 例子:矩形反转: <script> var arr=[[1,1,1,1,1],[2,2,2,2,2],[3,3,3,3,3],[4,4,4,4,4],[5,5,5,5,5]]; ...

  5. 【学习】js学习笔记:数组(一)

    1.创建数组并赋值 //对象方式 var arr=new Array(1,2,3,4); //隐形声明方式 var arr2=[5,6,7,8]; 2.数组可以存储任何类型的数据 3.访问数组,是用下 ...

  6. js学习笔记18----元素创建操作

    1.父级.appendChild(新的元素) 从后面开始追加子元素. 2.父级.insertBefore(新的元素,被插入的元素) 在指定元素前面开始插入一个新元素. 兼容性:在ie下,如果第二个参数 ...

  7. js学习笔记16----父节点的操作

    1.元素.parentNode : 只读属性,获取当前元素的父节点. 2.元素.offsetParent : 只读属性,获取离当前元素最近的一个有定位属性(position为relative或者abs ...

  8. Python3+Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)

    #!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)'''from sel ...

  9. Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法

    Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法 这篇笔记将介绍如何使用Ext.Net GridPanel 中使用Sorter. 默认情况下,Ext.Net GridP ...

随机推荐

  1. linux的cat命令

    1 描述 cat 的全称 concatenate files and print on the standard output cat命令事Linux下的一个文本输出命令. 用于链接文件并打印到标准输 ...

  2. Ubuntu 10.04 安装流程

    ubuntu 10.04 安装流程   需安装libxrender-dev才能跑html5           来自为知笔记(Wiz)

  3. MySQL 如何更新某个字段的值为原来的值加1

    格式:update 表名称 set 字段名称 = 字段名称 + 1 [ where语句] 比如说数据库中有一张student表,要想把id为1的学生成绩(score)加1则update student ...

  4. Accounting_会计基础知识

    作为企业的财务人员,必须拥有一些技能和财务方面的知识,本文就所讲述的是财务岗位必须掌握的知识总结,仅供参考. 1.账面价值.账面余额和账面净值 账面价值是指某科目(通常是资产类科目)的账面余额减去相关 ...

  5. 平衡二叉树AVL - 插入节点后旋转方法分析

    平衡二叉树 AVL( 发明者为Adel'son-Vel'skii 和 Landis)是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1. 首先我们知道,当插入一个节点,从此插入点到树根 ...

  6. 目的可疑,但方法非常值得学习的书——leo鉴书56

    书中提到写作手法绝对值得学习,为此能够打四颗星.   作者是个买直销产品的.靠写字让别人买自己的东西.当中特别强调了卖的多是太空时代的产品,意思就是读者非常可能并不须要,多半是被眼花缭乱的广告词儿骗了 ...

  7. Java中instanceof关键字的理解

    java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: res ...

  8. onethink迁移

    修改applicattion下面的Common跟User里面的config.php文件两个

  9. android framework-下载Android系统源代码

    □ apt-get install git-core curl #先下载这两个工具 □ mkdir android-froyo #建立下载目录 □ cd android-froyo #进入下载目录 □ ...

  10. C++内联函数详解

    1.函数调用原理 "编译过程的最终产品是可执行程序--由一组机器语言指令组成.运行程序时,操作系统将这些指令载入计算机内存中,因此每条指令都有特定的内存地址.计算机随后将逐步执行这些指令.有 ...