Array相关操做

  • indexOf数组

    使用场景:
    查找一个数组中是否包含某个元素, 若是有则返回下标值, 没有则返回-1app

  • mapcode

    适用场景:批量操做数组,一般用来对元素进行总体格式化或计算操做, 结果会返回一个数组.callback中需返回一个值来进行保存, 以产生新的数组
    e.g.:排序

var oldArr = [
    {first_name:"Colin",last_name:"Toh"},
    {first_name:"Addy",last_name:"Osmani"},
    {first_name:"Yehuda",last_name:"Katz"}
];

function getNewArr(){
    return oldArr.map(function(item,index){
        item.full_name = [item.first_name,item.last_name].join(" ");
        return item;
    });
}
console.log(getNewArr());
  • filterget

    适用场景:筛选过滤数组元素, 能够生成一个新的数组, 而不更改原数组, callback中需返回一个规则, 做为过滤的条件it

var arr = [
    {"name":"apple", "count": 2},
    {"name":"orange", "count": 5},
    {"name":"pear", "count": 3},
    {"name":"orange", "count": 16},
];

var newArr = arr.filter(function(item){
    return item.name === "orange";
});
  • forEachio

    适用场景:
    对原数组进行操做, 更改原来的元素 (与map()相似, 可是是直接更改原数组的), 因为是直接对原数组进行操做, 因此不须要返回值console

reduce(function (prev, next) {}, initial)ast

适用场景:这是一个数组的累加器,能够依次对各元素进行累加操做, 须要返回操做以后的结果值供下一个循环使用(若是不传入inital,则将数组的第0位做为prev,若是传入intial, 则将inital做为prev, next为数组的第0位)function

var arr = ["apple","orange","apple","orange","pear","orange"];

function getWordCnt(){
    return arr.reduce(function(prev,next){
        prev[next] = (prev[next] + 1) || 1;
        return prev;
    },{});
}
console.log(getWordCnt());
  • sort

    适用场景: 对原数组进行排序操做,会更改原数组.默认升序排列 . 若自定义排序规则,则需在callback中返回一个自定义规则, 当知足规则时, 数组会进行换位操做

相关文章
相关标签/搜索