1 回答

TA貢獻1806條經驗 獲得超5個贊
首先,創建一個計數函數,該函數使用 Array.prototype.reduce
來計算子數組中每個元素的出現次數。然后,創建另一個函數,該函數使用計數結果根據公式計算值,然后將其推送到子數組。最后,將此函數應用于整個數組的每個元素(在本例中,它是就地完成的,但這也可以通過創建新數組并使用 Array.prototype.map
來完成):
const count = (list, els) => {
const acc = {};
els.forEach(el => { acc[el] = 0; });
return list.reduce((acc, curr) => {
acc[curr]++;
return acc;
}, acc);
};
const formula = list => {
const { a, b, c, d } = count(list, ['a', 'b', 'c', 'd']);
const x = (a + c) / (b + d);
list.push(x);
};
const data = [['alpha', 'a', 'a', 'b', 'c'], ['beeta', 'b', 'b', 'a', 'a'], ['gama', 'a', 'b', 'c', 'c'], ['x-ray', 'd', 'c', 'a', 'a']];
data.forEach(formula);
console.log(data);
添加回答
舉報