ES6は、拡張メソッドの配列を達成するために

)(Array.ofを達成

かかわらず、パラメータの数またはタイプの、可変数の引数の配列の新しいインスタンスのArray.of()メソッドを作成します。

// 接收任意个参数,使其按顺序成为返回数组中的元素。
Array.pkOf = function() {
    return Array.prototype.slice.call(arguments);
}
let arr1 = Array.pkOf(10);
let arr2 = Array.pkOf("10");
let arr3 = Array.pkOf(10, 20);
console.log(arr1);
console.log(arr2);
console.log(arr3);

)(Array.fromを達成

Array.from()メソッドは、オブジェクト又は反復の類似配列から浅いコピーの配列の新しいインスタンスを作成します。

    Array.pkFrom = function(arrlike, fn) {
    let result = [];
    for (let i = 0; i < arrlike.length; i++) {
        if (fn) {
            result.push(fn(arrlike[i], i));
        } else{
            result.push(arrlike[i]);
        }
    }
    return result;
}
let arrlike = {
    0: '11',
    1: '22',
    length: 2
}
let res = Array.pkFrom(arrlike);
console.log(res);

)(Array.copyWithinを達成

Array.copyWithin()同じ配列の別の部分に、アレイ内の浅い位置をコピーする方法、および元の配列の長さを変更することなく、それを返します。

    Array.prototype.pkCopyWithin = function(pos, start, end) {
    let arr = this.slice(start, end);
    // this.splice(pos, end - start, arr);
    Array.prototype.splice.apply(this, [pos, end - start].concat(arr));
    return this;
}
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arr.pkCopyWithin(2, 7, 9));

)(Array.findを達成

Array.find()メソッドは、テスト機能が設けられた第一の要素を満たすの配列を返します。それ以外の場合はundefinedを返します。

    Array.prototype.pkFind = function(fn) {
    for (let i = 0; i < this.length; i++) {
        if (fn(this[i], i, this)) {
            return this[i];
        }
    }
}
let arr = ['1', '2', '3'];
let res = arr.pkFind(function(item, index, arr) {
    console.log(arguments);
    return item === '2';
})
console.log(res);

)(Array.findIndexを達成

Array.findIndex()メソッドは、テスト機能が設けられた第一の要素を満たすの配列インデックスを返します。それ以外の場合は-1を返します。

    Array.prototype.pkFindIndex = function(fn) {
    for (let i = 0; i < this.length; i++) {
        if (fn(this[i], i, this)) {
            return i;
        }
    }
    return -1;
}
let arr = ['1', '2', '3'];
let res = arr.pkFindIndex(function(item, index, arr) {
    console.log(arguments);
    return item === '2';
})
console.log(res);

おすすめ

転載: www.cnblogs.com/lpkshuai/p/12043607.html