Галоўная > Прасунуты аднарадковы код на JavaScript, які можа вам спатрэбіцца

Прасунуты аднарадковы код на JavaScript, які можа вам спатрэбіцца

js

1. Выдаленне falsy-значэнняў з масіва.

const truthyValues = arr.filter(Boolean);

Напрыклад:

const arr = [true, false, 0, 1, '', 'hello', null];
const truthyValues = arr.filter(Boolean);

// [true, 1, 'hello']

2. Пераўтварэнне масіву радкоў ў масіў лічбаў

const strArr = ['1', '2', '3', '4', '5', '6'];

const numArr = strArr.map(Number);

console.log(numArr);
// [1, 2, 3, 4, 5, 6]

3. Выдаленне дубляў з массіва

const uniqueValues = [...new Set(arr)];

Выкарыстоўваем new Set, каб хутка вызначыць унікальныя значэнні, і ператвараем Set зноў у масіў.

Напрыклад:

const arr = [1, 2, 2, 3, 4, 6, 6, 6, 7, 9];
const uniqueValues = [...new Set(arr)];

// [1, 2, 3, 4, 6, 7, 9]

4. Групоўка масіву па ўласцівасцях аб'екта

Калі вам спатрэбіцца групоўка масіву па асобным ўласцівасцям аб'ектаў, то можна зрабіць так:

const groupBy = (arr, groupFn) =>
  arr.reduce(
    (groupedAcc, obj) => ({
      ...groupedAcc,
      [groupFn(obj)]: [...(groupedAcc[groupFn(obj)] || []), obj],
    }),
    {}
  );

const people = [
  { name: 'Matt' },
  { name: 'Sam' },
  { name: 'John' },
  { name: 'Mac' },
];
const groupedByNameLength = groupBy(people, (person) => person.name.length);

/*
{
   3: [{name: 'Sam'}, {name: 'Mac'}],
   4: [{name: 'Matt'}, {name: 'John'}]
}
*/

5. Стварэнне выпадковага UUID

UUID (universally unique identifier) - сусветна унікальны ідэнтыфікатар. UUID - гэта 128-бітнае значэнне, якое дастаткова унікальна ўнікальна ідэнтыфікуе аб'ект або сутнасць у Інтэрнэце.

const generateRandomUUID = (a) =>
  a
    ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)
    : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(
        /[018]/g,
        generateRandomUUID
      );

console.log(generateRandomUUID()); 
// f138f635-acbd-4f78-9be5-ca3198c4cf34

console.log(generateRandomUUID()); 
// 8935bb0d-6503-441f-bb25-7bc685b5b5bc

6. Пераўтварэнне RGB ў Hex

const rgbToHex = (r, g, b) =>
  "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);

rgbToHex(0, 51, 255); 
// #0033ff

7. Стварэнне масіву даўжынёй n з дапамогай spread-аператара і Array.from

const n = 6;
const arr = [...Array.from({ length: n }, (v, index) => index)];

console.log(arr) // [ 0, 1, 2, 3, 4. 5];

8. Паслядоўна выконваемыя промісы

const urls = ['http://example.by/1', 'http://example.by/2', 'http://example.by/3', 'http://example.by/4'];

const sequencedRequests = urls.reduce(
    (acc, url) => acc
        .then(results => fetch(url)
            .then(results => results.json())
            .then(values => results.concat(values))
        ), Promise.resolve([]));

sequencedRequests.then(result => console.log(result));
loveJS, 2023-08-03
Каментары

    (Каб даслаць каментар залагуйцеся ў свой уліковы запіс)

    ;