Junior
Чӣ гуна метавон ҳама нусхаҳоро аз массив хориҷ кард?
sobes.tech AI
Ҷавоб аз AI
Меъёри маъмултарин чанд роҳ вуҷуд дорад:
-
Истифодаи
Set: Самтарин ва кӯтоҳтарин роҳ.Setтанҳо арзишҳои беназирро нигоҳ медорад.const arr = [1, 2, 2, 3, 4, 4, 5]; const uniqueArr = [...new Set(arr)]; // uniqueArr хоҳад буд [1, 2, 3, 4, 5]const arr = [{ id: 1, name: 'A' }, { id: 2, name: 'B' }, { id: 1, name: 'A' }]; const uniqueArr = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse); // Барои объектҳо бояд онҳоро ба сатр табдил дод, барои муқоисаи дуруст бо Set // uniqueArr хоҳад буд [{ id: 1, name: 'A' }, { id: 2, name: 'B' }] -
Истифодаи
filterваindexOf: Филтратсияи массив, бо гузоштани унсурҳо, ки аввалин вурудашон баробар ба индексҳои ҳозира аст.const arr = [1, 2, 2, 3, 4, 4, 5]; const uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index); // uniqueArr хоҳад буд [1, 2, 3, 4, 5] -
Истифодаи
reduce: Эҷоди массиви нав бо илова кардани унсурҳо, агар онҳо аллакай дар акумулятор набошанд.const arr = [1, 2, 2, 3, 4, 4, 5]; const uniqueArr = arr.reduce((accumulator, current) => { if (!accumulator.includes(current)) { accumulator.push(current); } return accumulator; }, []); // uniqueArr хоҳад буд [1, 2, 3, 4, 5]const arr = [1, 2, 2, 3, 4, 4, 5]; const uniqueArr = arr.reduce((accumulator, current) => accumulator.includes(current) ? accumulator : [...accumulator, current], []); // Варианти кӯтоҳтар // uniqueArr хоҳад буд [1, 2, 3, 4, 5] -
Истифодаи объект/Map: Эҷоди объект ё
Mapбарои пайгирӣ кардани унсурҳое, ки аллакай дидан шудаанд.const arr = [1, 2, 2, 3, 4, 4, 5]; const seen = {}; const uniqueArr = arr.filter(item => seen.hasOwnProperty(item) ? false : (seen[item] = true)); // uniqueArr хоҳад буд [1, 2, 3, 4, 5]const arr = [1, 2, 2, 3, 4, 4, 5]; const seen = new Map(); const uniqueArr = arr.filter(item => { if (!seen.has(item)) { seen.set(item, true); return true; } return false; }); // uniqueArr хоҳад буд [1, 2, 3, 4, 5]
Раванди истифодаи Set одатан самараноктарин ва хонданӣ барои намудҳои primitives мебошад. Барои объектҳо метавонад логикаи иловагӣ талаб шавад.