您的位置:首页 > Web前端 > JavaScript

JS数组的操作总结

2013-02-28 17:39 495 查看
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


未完待续。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: