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);
添加回答
举报