Skip to content

Instantly share code, notes, and snippets.

@thaycacac
Last active February 27, 2022 07:01
Show Gist options
  • Save thaycacac/eabd0e17e5fc86815183c1764aaeb196 to your computer and use it in GitHub Desktop.
Save thaycacac/eabd0e17e5fc86815183c1764aaeb196 to your computer and use it in GitHub Desktop.
Reduce trong Javascript

Tính tổng và tích của array sử dụng reduce javascript

function accumulation(...array) {
    return array.reduce((prev, next) => prev + next, 0);
}

function multiplication(...array) {
    return array.reduce((pre, next) => pre * next, 1);
}

Convert array sang object

const players = [
      { id: 11, name: 'Messi', age: 33 },
      { id: 12, name: 'Ronaldo', age: 34 },
      { id: 13, name: 'Young', age: 35 },
      { id: 14, name: 'Mane', age: 21 },
      { id: 15, name: 'Salah', age: 24 },
]

const convertArrayToObject = (array, key) => {
  const initialValue = {};
  return array.reduce((obj, item) => {
    return {
      ...obj,
      [item[key]]: item,
    };
  }, initialValue);
}

// output
const playersModified = convertArrayToObject(players, 'id');
playersModified = {
    11: {id: 11, name: "Messi", age: 33}
    12: {id: 12, name: "Ronaldo", age: 34}
    13: {id: 13, name: "Young", age: 35}
    14: {id: 14, name: "Mane", age: 21}
    15: {id: 15, name: "Salah", age: 24}
}

Reduce thay thế Reverse()

function reverse(array = []) {
    return array.reduce((prev, next) => (prev.push(next), prev), []);
}
reverse([1, 2, 3, 4, 5]); // [5, 4, 3, 2, 1]

Reducer thay thế map()

const a = arr.map(item => item * 2);
const b = arr.reduce((prev, next) => [...prev, next * 2], []);

Reducer thay thế filter()

const c = arr.filter(item => item > 1);
const d = arr.reduce((prev, next) => prev > 1 ? [...prev, next] : prev, []);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment