gpt4 book ai didi

javascript - JavaScript 中的 Scala `toMap`

转载 作者:行者123 更新时间:2023-12-02 16:28:16 26 4
gpt4 key购买 nike

是否有任何惯用的 JavaScript 解决方案:

var addTuple = function(map,tuple) { map[tuple[0]] = tuple[1]; return map}

我需要它来重写this example (see finance3.js)更实用的风格:

angular.module('finance3', [])
.factory('currencyConverter', ['$http', function($http) {
var rates = {}; //should be future (or some other monad) mapped from $http.sucess, but it's hard to do with Js
var processRate = function(rate) {
return [rate.id.substring(3,6), window.parseFloat(rate.Rate)];
};
var addTuple = function(map,tuple) { map[tuple[0]] = tuple[1]; return map};
$http.jsonp(url).success(function(data) {
rates = data.query.results.rate.map(processRate).reduce(addTuple, {});
});
return rates
}]);

所以,.reduce(addTuple, {}) 就像这里的 toMap

附注顺便说一句KnockoutJs至少提供了更具 react 性(但仍然非纯功能性)的方式来更新模型。

最佳答案

如果您可以使用外部库,lodash_.pairs_.zipObject将对象转换为二维数组的数组(即,{key: value}[[key: value]]),反之亦然。

var x = _.pairs({ 'barney': 36, 'fred': 40 });
// [['barney', 36], ['fred', 40]]

var y = _.zipObject(x)
// { 'fred': 30, 'barney': 40 }

您可以将示例重写为

rates = _.zipObject(data.query.results.rate.map(processRate))

关于javascript - JavaScript 中的 Scala `toMap`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28528780/

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