JavaScript Method

Trần Đức Lĩnh

Các method thường dùng trong Array, Object, Number, String...


Mục lục.

Array

  • .concat()

    • var new_array = old_array.concat([value1[, value2[, ...[, valueN]]]])

Nối 2 mảng lại với nhau, không thay đổi mảng hiện có mà trả về mảng mới.

var arr_a = [1, 2, 3];
var arr_b = [100, 200];

var arr_c = arr_a.concat(arr_b);

console.log(arr_c);
// [ 1, 2, 3, 100, 200 ]

  • .fill()

    • arr.fill(value[, start[, end]])

Thay thế giá trị cần thay thế tính từ sau giá trị mảng bắt đầu đến hết giá trị của mảng kết thúc.

const arr = [1, 2, 3, 4];

arr.fill(88,1,4);

console.log(arr);
// [1, 88, 88, 88]

  • .forEach()

    • arr.forEach(function callback(currentValue[, index[, array]]) {
      //your iterator
      }[, thisArg]);

Chạy vòng lặp cho mảng.

const arr = [5, 7, 23, 55];

arr.forEach(value => console.log(value));
// 5 7 23 55

  • .include()

    • arr.includes(searchElement[, fromIndex])

Xác định phần tử có tồn tại trong mảng hay không, giá trị nhận được là kiểu dữ liệu boolean.

const arr = ['moew', 'oops', 320];

var a = arr.includes(789);
console.log(a);
// false

  • .indexOf()

    • arr.indexOf(searchElement[, fromIndex])

Trả về vị trí của mảng, nếu không tìm thấy, giá trị mặc định là -1.

const arr = ['one', 'two', 'three', 4];

console.log(arr.indexOf('three'));
// 2
console.log(arr.indexOf(8));
// -1

  • .isArray()

    • Array.isArray(value)

Kiểm tra có chính là Array hay không, giá trị trả về là kiểu dữ liệu boolean.

const arr_1 = [1, 'two', 3];
const arr_2 = {
    obj: 'three'
}

console.log(Array.isArray(arr_1));
// true
console.log(Array.isArray(arr_2));
//false

  • .join()

    • arr.join([separator])

Tạo và trả về một giá trị mới và nối tất cả các phần tử lại với nhau bằng các dấu được chỉ định. Nếu phần tử có trong mảng chứa giá trị null hoặc undefined sẽ chuyển thành chuỗi trống.

const arr_1 = [1, 'two', null, 3];

var a = arr_1.join('-');

console.log(a);
// 1-two--3

  • .length

    • arr.length

Tính độ dài của một mảng, dùng nhiều trong vòng lặp.

const arr = [33, 45, 78, 56, 12];

for (let i = 0; i < arr.length; i++) {
    console.log(arr[i]);
    // 33, 45, 78, 56, 12
}

console.log(arr.length);
// 5

  • .pop()

    • arr.pop()

Loại bỏ phần tử cuối cùng trong mảng và trả về phần tử đó, thay đổi độ dài trước đó của mảng.

const arr = [23,45,78,90];

console.log(arr.pop());
// 90
console.log(arr);
// [ 23, 45, 78 ]

  • .push()

    • arr.push(element1[, ...[, elementN]])

Thêm một hoặc nhiều phần tử vào cuối mảng, thay đổi độ dài trước đó của mảng.

const arr = [23,45,78,90];

console.log(arr.push('moew', 215));
// 6
console.log(arr);
// [ 23, 45, 78, 90, 'moew', 215 ]

  • .reverse()

    • arr.reverse()

Đảo lộn mảng. Thay đổi thứ tự trước đó của mảng.

const arr = [10, 20, 30, 40, 50, 60] ;

console.log(arr.reverse());
// [ 60, 50, 40, 30, 20, 10 ]

  • .shift()

    • arr.shift()

Loại bỏ phần tử đầu tiên trong mảng và trả về phần tử đó, thay đổi độ dài trước đó của mảng.

const arr = [23,45,78,90];

console.log(arr.shift());
// 23
console.log(arr);
// [ 45, 78, 90 ]

  • .slice()

    • arr.slice([begin[, end]])

Tạo và trả về một mảng mới tính từ sau giá trị mảng bắt đầu đến hết giá trị của mảng kết thúc.

const arr = [23,45,78,90];

var x = arr.slice(1,4);

console.log(x);
// [ 45, 78, 90 ]

console.log(arr);
// [ 23, 45, 78, 90 ]

  • .splice()

    • array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

Thêm phần tử vào mảng từ sau giá trị mảng bắt đầu, xóa bao nhiêu phần tử (0 nếu không xóa phần tử nào) và chèn vào vị trí ngay sau đó. Thay đổi độ dài trước đó của mảng.

const arr = [1, 4, 6, 45, 9];

arr.splice(1, 0, 2, 3);

console.log(arr);
// [1, 2, 3, 4, 6, 45, 9]

arr.splice(5, 1, 7);

console.log(arr);
// [1, 2, 3, 4, 6, 7, 9]

  • .toString()

    • arr.toString()

Đưa toàn bộ phần tử của mảng trả về chuỗi đại diện cho mảng đã chỉ định trước đó.

const arr = [1, 'moew', 45, 99];

console.log(arr.toString());
// "1,moew,45,99"

  • .unshift()

    • arr.unshift(element1[, ...[, elementN]])

Thêm một hoặc nhiều phần tử vào đầu mảng, thay đổi độ dài trước đó của mảng.

const arr = [23,45,78,90];

console.log(arr.unshift('moew', 215));
// 6
console.log(arr);
// [ 'moew', 215, 23, 45, 78, 90 ]

  • .map()

    • var new_array = arr.map(function callback(currentValue[, index[, array]]) {
      // Return element for new_array
      }[, thisArg])

Tạo ra mảng mới với kết quả hàm được gọi được cung cấp các phần tử trong mảng được gọi, không thay đổi mảng hiện có mà trả về mảng mới.

const arr_1 = [1, 2, 4];
const arr_2 = arr_1.map(function(x){
    return x*2;
});
console.log(arr_2);
//[2, 4, 8]
console.log(arr_1);
//[1, 2, 4]

  • .filter()

    • var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])

Tạo một mảng mới và xét duyệt tất cả các phần tử trong mảng, những phần tử nào thỏa điều kiện sẽ được đi qua. Không thay đổi mảng hiện có mà trả về mảng mới.

const arr1 = [1, 2, 3, 4];
const arr2 = arr1.filter(function(x){
    return x %2 === 0;
});
console.log(arr2);
// [2, 4]
console.log(arr1);
// [ 1, 2, 3, 4 ]

  • .find()

    • arr.find(callback(element[, index[, array]])[, thisArg])

Trả về chỉ một giá trị duy nhất khi thỏa mãn điều kiện kiểm tra lần đầu tiên. Nếu không có phần tử nào thỏa mãn, giá trị trả về là undefined, không thay đổi mảng hiện có mà trả về một giá trị mới.

const arr_1 = [2, 5, 17, 99];

const arr_2 = arr_1.find(function(x) {
    return x > 10;
});

console.log(arr_2);
// 17
console.log(arr_1);
// [ 2, 5, 17, 99 ]

  • .reduce()

    • arr.reduce(callback[, initialValue])

Giảm dần nhiều phần tử trong mảng, giá trị này được tích lũy từ các phép tính trước, được ghi nhớ qua mỗi lần lặp lại cho đến mảng cuối cùng, kết quả là một giá trị duy nhất. Không thay đổi mảng hiện có mà trả về một giá trị mới.

const arr_1 = [3, 1, 7];
const arr_2 = arr_1.reduce(function(bien_tam,x) {
    return bien_tam + x;
}, 15);
console.log(arr_2);
// 15 + 3 + 1 = 4
// 4 + 7 = 11
// 11

  • .sort()

    • arr.sort([compareFunction])

Sắp xếp các phần tử có trong mảng và trả về mảng đó.

const arr_1 = [3, 1, 7];
arr_1.sort(function(a, b) {
    return b - a;
});

console.log(arr_1);
// [ 7, 3, 1 ]


Object



Function

  • arguments

    • arguments

Arguments là một object giống Array, có khả năng truy cập bên trong hàm, chứa các giá trị của đối số truyền vào bên trong hàm đó.

Giống như rest parameters trong ES6.

function obj () {
    console.log(arguments);
};

obj(45, 7, 65, 1);
// [Arguments] { '0': 45, '1': 7, '2': 65, '3': 1 }

Áp dụng để truyền tham số vào functions nhưng không biết số lượng truyền vào là bao nhiêu.

function obj () {
    let ele = 0;
    for (let i = 0; i < arguments.length; i++) {
        ele += arguments[i];
    }
    return ele;

};

console.log(obj(45, 7, 65, 1));
// 118

  • .bind

    • function.bind(thisArg[, arg1[, arg2[, ...]]])

Khi đó .bind sẽ tạo ra 1 hàm mới, khi được gọi, từ khóa this sẽ được đặt thành giá trị được cho trước.

Biến a sẽ là một global contextfun() là một function context.

function fun(cp) {
    console.log("Run...");
    cp();
};

var ani = {
    name: "mouse",
    say: function() {
        console.log("Hello ", this.name);
    }
};

var a = ani.say.bind(ani);
a();
// Run...
// Hello  mouse
fun(ani.say.bind(ani));
// Hello  mouse

  • .call

    • function.call(thisArg, arg1, arg2, ...)

Hàm call() này được gán với this của một hàm nào đó.

function func () {
    console.log(this.name, this.number);
};

const animal = {
    name: 'giraffe',
    number: 10
};

func.call(animal);
// giraffe 10

  • .apply

    • function.apply(thisArg, [argsArray])

Tương tự như .call, nhận vào là một mảng hoặc tưng tự như mảng.

const num = [1, 2, 3, 6];

const max = Math.max.apply(null, num);

console.log(max);
// 6

const min = Math.min.apply(null, num);

console.log(min);
// 1

(Còn nữa...)