![](/img/trans.png)
[英]How do I apply a composed function to each object in a list using Ramda?
[英]How to convert this _.each function that adds a key to each object into Ramda?
http://jsfiddle.net/leongaban/4xfc4g3c/1/
const spamData = [true, true, false];
const tweets = [{ tweet: "Hello" }, { tweet: "World" }, { tweet: "Pork"}];
_.each(spamData, (value, i) => {
tweets[i]['spam'] = value;
});
log(tweets);
此时卡住:
const setSpamValues = (spamValue) => {
return spamValue;
};
R.forEach(setSpamValues, spamData);
不确定现在将返回的spamValue
发送到每个推文中名为spam
的新密钥的最佳方法是什么。
在利用图书馆为您服务之前,您应该养成思考如何自行解决这些问题的习惯。 如果您正在解决这个基本问题,则可能需要重新考虑完全使用Ramda。 一旦您了解了Ramda提供的实用程序,也许就可以使用它了。
这就是您要寻找的结果,仅使用普通的JavaScript。
const spamData = [true, true, false]; const tweets = [{ tweet: "Hello" }, { tweet: "World" }, { tweet: "Pork"}]; let result = tweets.map((t,i) => Object.assign({}, t, {spam: spamData[i]}) ); console.log(result); // [ // {"spam": true, "tweet": "Hello"}, // {"spam": true, "tweet": "World"}, // {"spam": false, "tweet": "Pork"} // ]
const spamData = [true, true, false]; const tweets = [{ tweet: "Hello" }, { tweet: "World" }, { tweet: "Pork"}]; let result = R.zip(spamData, tweets).map(([spam, tweet]) => Object.assign({}, tweet, {spam}) ); console.log(result); // [ // {"spam": true, "tweet": "Hello"}, // {"spam": true, "tweet": "World"}, // {"spam": false, "tweet": "Pork"} // ]
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.22.1/ramda.js"></script>
ps,下次您提出问题时,应包括预期的输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.