JavaScript 如何对累加器和对象的每个键应用函数
在本文中,我们将看到如何在JavaScript中对累加器和对象的每个键应用函数。累加器可以是函数、对象、数组等。在本文中,我们使用累加器和对象的键来应用函数。
方法: 在我们的方法中,我们使用reduce函数。首先,我们从对象中获取键并创建一个函数。获取键之后,我们使用reduce函数将函数应用于一组键和累加器。在reduce方法中,我们将累加器和键作为回调函数的参数,这个回调函数就是我们的函数。
语法:
Collection.reduce((accumulator, key)=>
function(accumulator,key), InitialValue);
JavaScript
示例1:
Javascript
<script>
function ApplyingFn() {
// Function that apply against accumulator
function function(robj, key) {
// Limits for salary for persons
var l1 = 'Below 30000';
var l2 = 'Below 40000';
var l3 = 'Below 50000';
var l4 = 'Above 50000';
// Checking salary of persons
if (m[key] < 30000) {
// Creating group for same
// salary below Limits
robj[l1].push(key);
}
if (m[key] < 40000) {
// Creating group for same
// salary below Limits
robj[l2].push(key)
}
if (m[key] < 50000) {
// Creating group for same
// salary below Limits
robj[l3].push(key)
}
else {
// Creating group for same
// salary below Limits
robj[l4].push(key)
}
return robj;
}
// object for the salary
var k = {
'Below 30000': [], 'Below 40000': [],
'Below 50000': [], 'Above 50000': []
};
var m = {
'Rahul': 15000, 'Shyam': 220000,
'David': 420000, 'Sam': 35000, 'Ram': 450000
};
// Apply Function against accumulator
// and key of object
var l = Object.keys(m).reduce((accumulator,
key) => function(accumulator, key), k);
console.log(l);
}
ApplyingFn();
</script>
JavaScript
输出结果:
{'Below 30000': ['Rahul'],
'Below 40000': ['Rahul', 'Sam'],
'Below 50000': ['Rahul', 'Sam'],
'Above 50000': ['Shyam', 'David','Ram']}
JavaScript
示例2:
Javascript
<script>
function ApplyingFn() {
// Function which is applied
// against accumulator
function function(robj, value, key) {
// Checking key is first or not
if (robj[value] == undefined) {
// Creating group for same key
robj[value] = [];
robj[value].push(key);
}
// If key is already taken
else {
// Inserting value in group
robj[value].push(key)
}
return robj;
}
var m = {
'Ms.Dhoni': 'Cricket',
'Sunil Chhetri': 'Football',
'Rishabh Pant': 'Cricket',
'K.L Rahul': 'Cricket',
'Ishan Pandita': 'Football',
};
// Apply Function against accumulator
// and key of object
var l = Object.keys(m).reduce((accumulator,
key) => function(accumulator, m[key], key), {});
console.log(l);
}
ApplyingFn();
</script>
JavaScript
输出:
{'Cricket': ['Ms.Dhoni', 'Rishabh Pant', 'K.L Rahul'],
'Football': ['Sunil Chhetri', 'Ishan Pandita']}
JavaScript