why is my last console.log not working and why is my output of the first console.log different than the example? breakup( list , partitioner ) This function accepts two inputs: a list of elements and a function that accepts an element from the list. The result is an object whose properties correspond to the items returned by the partitioner and whose values are lists of elements that generated that property. Examples breakup( [ 1, 2, 3, 5, 6, 7 ], (x) => { return x % 2 == 0; } ) => { true:[ 2, 6 ], false:[ 1, 3, 5, 7 ] } breakup( [ 1.3, 5.1, 1.1, 4.3, 5.5 ], Math.floor ) => { 1:[ 1.3, 1.1 ], 4:[ 4.3 ], 5:[ 5.1, 5.5 ] } breakup( [“cat”, “bat”, “rat”, “horse”, “pony”], function(s) { return s.length; } ) => { 3:[“cat”, “bat”, “rat”], 4:[“pony”], 5:[“horse”] } function breakup(list,partitioner)
why is my last console.log not working
and why is my output of the first console.log different than the example?
This function accepts two inputs: a list of elements and a function that accepts an element from the list. The result is an object whose properties correspond to the items returned by the partitioner and whose values are lists of elements that generated that property.
Examples
- breakup( [ 1, 2, 3, 5, 6, 7 ], (x) => { return x % 2 == 0; } ) => { true:[ 2, 6 ], false:[ 1, 3, 5, 7 ] }
- breakup( [ 1.3, 5.1, 1.1, 4.3, 5.5 ], Math.floor ) => { 1:[ 1.3, 1.1 ], 4:[ 4.3 ], 5:[ 5.1, 5.5 ] }
- breakup( [“cat”, “bat”, “rat”, “horse”, “pony”], function(s) { return s.length; } ) => { 3:[“cat”, “bat”, “rat”], 4:[“pony”], 5:[“horse”] }
function breakup(list,partitioner) {
var result = {};
for(var i=0; i<list.length; i++) {
var prop=partitioner(list[i]);
if(!Array.isArray(result[prop])) {
result[prop] = [];
}
result[prop].push(list[i]);
}
return result;
}
console.log(breakup([1,2,3,5,6,7],(x) => { return x % 2 == 0; } ))
console.log(breakup( [ 1.3, 5.1, 1.1, 4.3, 5.5 ], Math.floor ))
console.log(breakup( [“cat”, “bat”, “rat”, “horse”, “pony”], function(s){return(s).length; } ))
Step by step
Solved in 2 steps with 1 images