Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript Ruby's map-like method

Is there Ruby's map-like syntax in JavaScript? for example in Ruby I could write:

res = [[1,2,3],[4,5,6],[7,8,9]]
res = res.map { |x| x[1..2] } 
# res == [[2, 3], [5, 6], [8, 9]]

Is there any function that works like that in JavaScript?

like image 526
Kokizzu Avatar asked Dec 12 '25 16:12

Kokizzu


1 Answers

You could check out Underscore.js Map helper function (there is also MapObject helper, similar to map, but works with objects): http://underscorejs.org/#map

_.map([1, 2, 3], function(num){ return num * 3; });
=> [3, 6, 9]
_.map({one: 1, two: 2, three: 3}, function(num, key){ return num * 3; });
=> [3, 6, 9]
_.map([[1, 2], [3, 4]], _.first);
=> [1, 3]

Failing that, you could try ES6 map object: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

var kvArray = [["key1", "value1"], ["key2", "value2"]];

// Use the regular Map constructor to transform a 2D key-value Array into a map
var myMap = new Map(kvArray);

myMap.get("key1"); // returns "value1"

// Use the spread operator to transform a map into a 2D key-value Array.
alert(uneval([...myMap])); // Will show you exactly the same Array as kvArray

// Or use the spread operator on the keys or values iterator to get 
// an array of only the keys or values
alert(uneval([...myMap.keys()])); // Will show ["key1", "key2"]

If you decide on ES6, you will also need a transpiler such as Babel.

Hope that helps.

like image 116
aaronmarruk Avatar answered Dec 15 '25 09:12

aaronmarruk



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!