ES5新增了一些数组的操作方法,如果不考虑IE6-IE8的话用起来真的很方便,自己实践一番之后,把用法贴了给大家。
//indexOf()方法返回在该数组中第一个找到的元素位置,如果它不存在则返回-1。
//lastIndexOf() 最后出现的位置
var arr = ['apple','orange','pear'];
console.log("found:", arr.indexOf("orange") != -1);
//forEach遍历
var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
sum = 0;
numbers.forEach(
function(number) {
sum += number;
}
);
console.log(sum);
//map 返回一个新的数组
var arr = [1, 9, 4, 16, 25];
var arr2 = arr.map(function(x) {
return x * 2;
})
var arr3 = arr.map((Math.sqrt))
console.log(arr2);
//filter 数组过滤,返回满足条件的项
var persons = [{
"name": "lili",
"sex": "female",
"age": 18
}, {
"name": "zack",
"sex": "male",
"age": 20
}, {
"name": "ruby",
"sex": "female",
"age": 24
}, {
"name": "leo",
"sex": "male",
"age": 30
}, {
"name": "lucy",
"sex": "female",
"age": 35
}, ];
var passedBySex = persons.filter(
function(person) {
return person.sex == "male";
});
console.log(passedBySex);
//reduce() 方法接收一个函数作为累加器,第二个参数为初始值
//reduceRight() 从后向前
var arr = [1, 2, 3, 4, 5];
sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
}, 10)
console.log(arr, sum);
//every函数的作用类似于运算符&&
var numbers = [11,12,13,14,22,23];
var test=numbers.every(function(num){
return num>10;
});
console.log(test);
//some函数的作用类似于||
test=numbers.some(function(num){
return num>16;
});
console.log(test);
</script>