javascript 数组简明总结

定义

var empty=[];

何时使用

当属性名是小而连续的整数时,使用数据组,否则使用对象。

识别

typeof运算符对数据没有意义,因为返回的是‘object‘
//ECMA5 已添加该方法
可以添加静态方法:

Array.isArray=function(obj)
{
    return Object.prototype.toString.apply(obj)===‘[object Array]‘
}

长度
  length属性的值是这个数组的最大整数属性名加1:

array=[];
array[7]=0;
console.log(array.length);

设置更大length不会给数组分配更多的空间(undefined),而把length设小将导致所有下标等于新的length的属性被删除。

添加

添加一个元素:
empty[empty.length]="";
empty.push("");

删除

delete numbers[2]; //留下一个空洞
numbers.splice(2,1); //向前移动

查找

//IE9+ 支持
array.indexOf()
array.lastIndexOf()

输出

alert(array.toString());
alert(array.valueOf());
alert(array);
alert(array.join(‘,‘));

方法

  • 字符串方法:

array.concat() //连接字符串,相当于‘+’
array.join() //生成字符串

  • 栈方法:

array.push()
array.pop()

  • 队列方法

array.shift() 
array.unshift()

  • 重排序方法

array.reverse() //反排序
array.sort() //字符串排序

  • 操作方法

array.slice()
array.splice() //相当强大,可实现任意的增删改。

排序

数据原型中有sort的方法(Array.prototype.sort ),但只对字符排序

function sortNumber(a, b)
{
return a - b
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
document.write(arr + "<br />")
//字符排序
document.write(arr.sort() + "<br />") //1,10,1000,25,40,5
//数据排序
document.write(arr.sort(sortNumber)) //1,5,10,25,40,1000

 

迭代

在此只介绍简单用法.//以下只支持ECMA5

every() //每一个都满足条件返回true
filter() //返回满足条件的子数组
forEach() //对每一个元素进行操作,不返回
map() //对每一个元素进行操作,返回结果数组
some()//有一个满足条件返回true

归并

当前后项有关系时实现的操作,方便实现双向链表的功能. //以下只支持ECMA5

reduce()
reduceRight()

编码规范

以下来自GitHub,有很多关于javascript优秀的编程风格,推荐大家看看:https://github.com/airbnb/javascript

  • Use the literal syntax for array creation.

    // badvar items =newArray();
    
    // goodvar items = [];
  • Use Array#push instead of direct assignment to add items to an array.
    var someStack = [];
    
    // bad
    someStack[someStack.length] =‘abracadabra‘;
    
    // good
    someStack.push(‘abracadabra‘);
  • When you need to copy an array use Array#slice. jsPerf
    var len = items.length;
    var itemsCopy = [];
    var i;
    
    // badfor (i =0; i < len; i++) {
      itemsCopy[i] = items[i];
    }
    
    // good
    itemsCopy = items.slice();
  • To convert an array-like object to an array, use Array#slice.
    functiontrigger() {
      var args =Array.prototype.slice.call(arguments);
      ...
    }
时间: 2024-11-06 04:28:51

javascript 数组简明总结的相关文章

javascript 数组的深度复制

javascript 数组的深度复制 一般情况下,使用 "=" 可以实现赋值.但对于数组.对象.函数等这些引用类型的数据,这个符号就不好使了. 1. 数组的简单复制 1.1 简单遍历 最简单也最基础的方式,自然是循环处理.示例: function array_copy(arr) { var out = [], i, len; if (out[i] instanceof Array === false){ return arr; } for (i = 0, len = arr.lengt

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

一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {"json:":"666"}]; console.log(arr.length); 二.JavaScript 数组的两种声明 1.var arr = [元素]; var arr = ["坚持"]; 2.new Array(); 或者 var arr2 =

JavaScript 数组去重

JavaScript 数组去重 Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多.为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript

javascript数组去重算法-----4(另一种写法)

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript数组去重算法-----3</title> 6 </head> 7 <body> 8 <script> 9 var arr = [1,1,2,2,3,2,2,3,3,1,1,4,4,5

JQuery $.each遍历JavaScript数组对象实例

查看一个简单的jQuery的例子来遍历一个JavaScript数组对象. var json = [ {"id":"1","tagName":"apple"}, {"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana&q

JavaScript数组方法对比(深度学习数组)

JavaScript数组方法对比 众所周知,JavaScript提供了许多对数组进行改变的方法,但是有些会对原数组进行影响,有些不会.下边就列举出来. 一.新增 影响原数组 array.push()  //向数组的末尾添加一个或更多元素,并返回新的长度. var array =[1,2,3,4,5]; array.push(6); // [1,2,3,4,5,6]; array.unshift() //向数组的开头添加一个或更多元素,并返回新的长度. var array =[1,2,3,4,5]

javascript数组顺序-----1冒泡的另一种比较好理解的写法

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript数组冒泡排序法</title> 6 </head> 7 <body> 8 <script> 9 var array = [7, 9, 22, 11, 12, 13, 5, 4, 3,

javascript数组去重算法-----4(另一种写法__2)

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript数组去重算法-----3</title> 6 </head> 7 <body> 8 <script> 9 var arr = [1,1,2,2,3,2,2,3,3,1,1,4,4,5

javascript数组去重算法-----5

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript数组去重算法-----3</title> 6 </head> 7 <body> 8 <script> 9 var arr = [1,1,2,2,3,2,2,3,3,1,1,4,4,5