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

javascript 数组简明总结

时间:2015-04-29 08:35:16      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

 

定义

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);
      ...
    }

javascript 数组简明总结

标签:

原文地址:http://www.cnblogs.com/etoah/p/4461996.html

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