var ind = ["Яблоко", "Груша", "Банан"];
.var arr = [
["Яблоко", "Банан", "Груша", "Груша", "Яблоко", "Яблоко", "Банан"],
[11, 12, 34, 54, 76, 23, 232],
[33, 54, 22, 11, 23, 21, 33]
];
var arr = [
["Яблоко", "Груша", "Банан"],
[[11, 76, 23], [34, 54], [12, 232]],
[[33, 23, 21], [22, 11], [54, 33]]
];
const result = ind.reduce((acc, col) => {
arr.forEach((n, i) => {
acc[i].push(i ? n.filter((m, j) => arr[0][j] === col) : col);
});
return acc;
}, arr.map(() => []));
const indObj = Object.fromEntries(ind.map((n, i) => [ n, i ]));
const result = arr.reduce((acc, n, i) => (
i && n.forEach((m, j) => acc[i][indObj[arr[0][j]]].push(m)),
acc
), arr.map((_, i) => ind.map(n => i ? [] : n)));
const source = ['Яблоко', 'Банан', 'Груша', 'Груша', 'Яблоко', 'Яблоко', 'Банан'];
const mix_source = [
['Яблоко', 'Банан', 'Груша', 'Груша', 'Яблоко', 'Яблоко', 'Банан'],
[33, 22, 3331, 234, 3234],
];
// Функция для обработки строковых массивов
const clearStringArray = (arr) => {
const clear_arr = [];
arr.forEach((arr_item) => {
if(clear_arr.indexOf(arr_item) === -1) {
clear_arr.push(arr_item);
}
});
return clear_arr;
}
// Функция для обработки числовых массивов
const clearNumberArray = (arr) => {
// ...
return arr;
}
// Функция для обработки сложного массива
const clearMixArray = (arr) => {
return mix_source.map((mix_item) => {
const is_array = Array.isArray(mix_item);
const array_have_first_element = typeof mix_item[0] !== undefined;
const first_element_type = typeof mix_item[0];
if (is_array && array_have_first_element) {
switch(first_element_type) {
case "string": return clearStringArray(mix_item);
case "number": return clearNumberArray(mix_item);
}
}
});
}
// Пример обработки строкового массива
console.log(clearStringArray(source));
//(3) ["Яблоко", "Банан", "Груша"]
console.log(clearMixArray(mix_source));
/*
0: (3) ["Яблоко", "Банан", "Груша"]
1: (5) [33, 22, 3331, 234, 3234]
length: 2
*/