Array Method

Method

原本陣列

return

Basic Array Method

push(ele)

Array 改變

Number (length)

unshift(ele)

Array 改變

Number (length)

pop()

Array 改變

被移掉的那個值

shift()

Array 改變

被移掉的那個值

concat()

不變

Array

Filter something

findIndex()

不變

Number

find()

不變

第一個找到的 "值"

filter()

不變

符合條件的 Array

forEach()

Array 改變

undefined

map()

不變

數量為 array.length 的 Array

some()

不變

Boolean

every()

不變

Boolean

Special

reduce(acc, cur)

不變

Order

sort()

Array 改變

數量為 array.length 的 Array

reverse()

Array 改變

數量為 array.length 的 Array

Operation

slice(start, end)

不變

return 包含 start 不包含 end 的 Array

splice(start, deleteCount, insert)

Array 改變

回傳移掉的值 Array

indexOf()

不變

所在位置 Number

join()

不變

String

includes()

不變

Boolean

Reimplement the Array method

Array.map

/**
 * @param {number[]} arr
 * @param {Function} fn
 * @return {number[]}
 */
var map = function(arr, fn) {
    var result = [];
    for( let [index, value] of arr.entries()){
      result[index] = fn(value, index)
    }
    return result;
};

Array.filter

/**
 * @param {number[]} arr
 * @param {Function} fn
 * @return {number[]}
 */
var filter = function(arr, fn) {
    let result = [];
    let size = 0
    for(let [i, value] of arr.entries()) {
         if(fn(value, i)){
           result[size] = value
           size++;
         }
    }
    return result;
};

Last updated