gpt4 book ai didi

javascript - 使用 .map 将数量转换为百分比

转载 作者:行者123 更新时间:2023-11-30 08:37:46 25 4
gpt4 key购买 nike

我想使用 Javascript 的 lodash 将这个数组对象转换为百分比。这是对象:

gender = { 
female: [14, 33, 28, 49],
male: [33, 50, 42, 61]
}

我希望上面的对象是

genderPercent = { 
female: [0.2978, 0.3975, ..., ...],
male: [0.7021, 0.6024, ..., ...]
}

这是我已经尝试过的:

_.map(gender, function (val, index, list) {
gender["male"][gender["male"].length-1] / gender["male"][gender["male"].length-1] + gender["female"][gender["female"].length-1])
});

但这似乎行不通。

有什么建议吗? :)

(注意:我需要随时间扩展的解决方案,因为我的性别数组每个月都在持续增长。)

最佳答案

如果男性和女性的长度始终相同,您可以只使用 for 循环:

var gender = { 
female: [14, 33, 28, 49],
male: [33, 50, 42, 61]
}
var m = gender.male;
var f = gender.female;

var genderP = {female:[], male:[]};
for (var i = 0; i < gender.female.length; i++) {
var t = m[i] + f[i];
genderP.male.push(m[i]/t);
genderP.female.push(f[i]/t);
}

console.log(JSON.stringify(genderP, null, 2));
/*
{
"female": [
0.2978723404255319,
0.39759036144578314,
0.4,
0.44545454545454544
],
"male": [
0.7021276595744681,
0.6024096385542169,
0.6,
0.5545454545454546
]
}
*/

_.zip_.unzip 也可以使用:

var gender = { 
female: [14, 33, 28, 49],
male: [33, 50, 42, 61]
}

var genderP = _.zipObject(['male', 'female'], _.chain(_.zip(gender.male, gender.female))
.map(function(pair) {
var t = pair[0] + pair[1]
return [pair[0] / t, pair[1] / t]
})
.unzip()
.value());

console.log(JSON.stringify(genderP, null, 2));
/*
{
"male": [
0.7021276595744681,
0.6024096385542169,
0.6,
0.5545454545454546
],
"female": [
0.2978723404255319,
0.39759036144578314,
0.4,
0.44545454545454544
]
}
*/
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/3.7.0/lodash.min.js"></script>

关于javascript - 使用 .map 将数量转换为百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29872840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com