mackxu
子曰:学而时习之,不亦说乎?

String.split(String/RegExp)

Array.join(String)

Array.concat(String/Array)

Array.slice(start, end)

Array.reverse() [原]

Array.sort() [原]

indexOf(value) [ES5]

lastIndexOf(value)[ES5]

splice(start, length, value1...)[原]

every(callback)[ES5]

some(callback)[ES5]

filter(callback)[ES5]

map(callback)[ES5]

forEach(callback)[ES5]

/*
 * 数组的构成
 * String.split() 把字符串转成数组
 * Array.join() 可以把数组转化成字符串
 * 
 * 数组的连接/截取
 * Array.concat(String/Array) 
 * 如果没有参数 克隆当前数组
 * 当传递一个元素是数组的数组时并不能递归地展开
 * Array.slice(start, end) [start, end)
 * 当传递参数是负值时,其值转变成负值加上数组长度
 * 
 * 数组排序
 * Array.reverse() 在原数组上执行数组元素翻转 并返回翻转后的数组
 * Array.sort() 在原数组上执行排序操作, 并返回排序后的数组
 * sort()方法可以传递一个自定义的比较方法
 * 
 * 数组元素定位(ECMAScript 5) IE9+...
 * indexOf()
 * lastIndexOf()
 * 自定义indexOf()
 * 
 * 数组的插入/删除/替换
 * Array.splice() 在原数组上执行操作
 * splice(start, length, string, ...)
 * 插入元素:splice(start, 0, 'a')                 在start后插入'a'
 * 删除元素:splice(start, 1)                         删除下标为start的元素
 * 替换元素:splice(start, length, string, ...)     替换 (删除添加)
 * 
 * 数组迭代(ECMAScript 5)
 * Boolean every(function(item, index, array) { ... })
 * Boolean some(function(item, index, array))
 * Array filter(function(item, index, array))     返回筛选的数组 函数返回true的元素
 * Array map(function(item, index, array))        返回操作后所有数组元素
 * void forEach(function(item, index, array))    没有返回值
 * 
 * 用回调函数迭代地将数组简化为单一的值
 * reduce(function(prev, cur, index, array))
 * reduceRight(function(prev, cur, index, array))
 * 
 * 自定义操作
 * inArray(value, array)     //检查数组中是否存在某个值
 * unique(array)            //删除数组中重复的元素
 * shuffle()                //随机排序
 * rand()                    //从数组中随机取出一个或多个单元 
 * countValues(array)        //统计数组中所有的值出现的次数
 */
/**
 * 数组排序
 * 当value1 - value2 > 0 则将交换两者位置 
 * @param {Object} value1
 * @param {Object} value2
 */
function compare(value1, value2) {
    return value1 - value2;
}
var values = [1, 3, 30, 2, 10];
values.sort(compare);
console.log(values);

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
//判断数组元素是否都大于2
var result = numbers.every(function(item, index, array) {
    return item > 2;
});
//判断数组中是否有大于2的元素
var result = numbers.some(function(item, index, array) {
    return item > 2;
});
//返回由符合条件的元素组成的数组
var result = numbers.filter(function(item, index, array) {
    return item > 2;
});
//对每个元素操作并以数组的形式返回
var result = numbers.map(function(item, index, array) {
    return item * 2;
});
//遍历数组
numbers.forEach(function(item, index, array) {
    //....
    item = item * 2;
});
//给每个数组元素加2
for(var i=0, len=numbers.length; i<len; i++) {
    numbers[i] += 2;
}

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var index = numbers.indexOf(3);            //2
var index = numbers.lastIndexOf(3);        //6

未完待续。。。

posted on 2013-02-28 17:39  mackxu  阅读(314)  评论(0编辑  收藏  举报