我有一个对象:
myObject = { 'a': 1, 'b': 2, 'c': 3 }
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个本机方法,类似于Array.prototype.map
将使用如下:
newObject = myObject.map(function (value, label) {
return value * value;
});
// newObject is now { 'a': 1, 'b': 4, 'c': 9 }
Run Code Online (Sandbox Code Playgroud)
JavaScript是否具有map
对象的这种功能?(我想将它用于Node.JS,所以我不关心跨浏览器问题.)
map(function, iterable, ...)
Run Code Online (Sandbox Code Playgroud)
将函数应用于iterable的每个项目并返回结果列表.如果传递了其他可迭代参数,则函数必须采用那么多参数,并且并行地应用于所有迭代的项.
如果一个iterable比另一个短,则假定使用None项扩展.
如果是None
function,则假定为identity函数; 如果有多个参数,则map()
返回一个由包含所有迭代中相应项的元组组成的列表(一种转置操作).
可迭代参数可以是序列或任何可迭代对象; 结果始终是一个列表.
这在制作笛卡尔积的过程中扮演什么角色?
content = map(tuple, array)
Run Code Online (Sandbox Code Playgroud)
将元组放在哪里有什么影响?我也注意到,如果没有map函数,输出就是abc
和它一样a, b, c
.
我想完全理解这个功能.参考定义也很难理解.太多花哨的绒毛.
我的一个朋友正在面试一份工作.其中一个面试问题让我思考,只想得到一些反馈.
有2个非负整数:i和j.给定以下等式,找到(最优)解决方案以对输出进行排序的方式迭代i和j.
2^i * 5^j
Run Code Online (Sandbox Code Playgroud)
所以前几轮看起来像这样:
2^0 * 5^0 = 1
2^1 * 5^0 = 2
2^2 * 5^0 = 4
2^0 * 5^1 = 5
2^3 * 5^0 = 8
2^1 * 5^1 = 10
2^4 * 5^0 = 16
2^2 * 5^1 = 20
2^0 * 5^2 = 25
Run Code Online (Sandbox Code Playgroud)
尽我所能,我看不到一个模式.你的意见?
我需要一个地图功能.Java中有这样的东西吗?
(对于那些想知道的人:我当然知道如何自己实现这个琐碎的功能...)
我想将一个值映射转换为另一个具有相同键但具有应用于值的函数的映射.我认为在clojure api中有这样做的功能,但我一直无法找到它.
这是我正在寻找的一个示例实现
(defn map-function-on-map-vals [m f]
(reduce (fn [altered-map [k v]] (assoc altered-map k (f v))) {} m))
(println (map-function-on-map-vals {:a "test" :b "testing"} #(.toUpperCase %)))
{:b TESTING, :a TEST}
Run Code Online (Sandbox Code Playgroud)
有人知道是否map-function-on-map-vals
已经存在?我认为它确实(可能还有一个更好的名字).
通过什么机制这个斐波那契函数被记忆了?
fib = (map fib' [0..] !!)
where fib' 1 = 1
fib' 2 = 1
fib' n = fib (n-2) + fib (n-1)
Run Code Online (Sandbox Code Playgroud)
在相关的说明中,为什么这个版本不是?
fib n = (map fib' [0..] !! n)
where fib' 1 = 1
fib' 2 = 1
fib' n = fib (n-2) + fib (n-1)
Run Code Online (Sandbox Code Playgroud) 我有点惊讶MATLAB没有Map功能,所以我自己一起攻击了一个,因为它是我不能没有的东西.那里有更好的版本吗?那里有一个有点标准的MATLAB函数式编程库我不见了吗?
function results = map(f,list)
% why doesn't MATLAB have a Map function?
results = zeros(1,length(list));
for k = 1:length(list)
results(1,k) = f(list(k));
end
end
Run Code Online (Sandbox Code Playgroud)
用法是例如
map( @(x)x^2,1:10)
Run Code Online (Sandbox Code Playgroud) 我正在使用Reactjs编写一个菜单组件.
"use strict";
var React = require("react");
var Menus = React.createClass({
item_url: function (item,categories,articles) {
console.log('afdasfasfasdfasdf');
var url='XXX';
if (item.type == 1) {
url = item.categoryId == null ? 'javascript:void(0)' : path('buex_portal_browse_category', {slug: categories[item.categoryId].slug});
} else if (item.type == 2) {
url = item.articleId == null ? 'javascript:void(0)' : path('buex_portal_view_article', {slug: articles[item.articleId].slug, id: item.articleId});
} else {
url = item.url;
}
return url;
},
render: function () {
// console.log(this.props.menus); // return correctly
var menuElements = this.props.menus.map(function (item1) { // …
Run Code Online (Sandbox Code Playgroud) 定义函数的两个条件pure
如下:
如果第一个条件始终为真,那么是否有第二次条件不为真?
即真的只有第一个条件才需要吗?
javascript functional-programming language-lawyer pure-function
map-function ×6
javascript ×3
algorithm ×1
c ×1
clojure ×1
dictionary ×1
fibonacci ×1
haskell ×1
java ×1
matlab ×1
memoization ×1
node.js ×1
optimization ×1
pointfree ×1
python ×1
reactjs ×1
this ×1
trampolines ×1