我曾经写过类似的东西
_.map(items, (item, index) => {});
Run Code Online (Sandbox Code Playgroud)
与lodash.通常我不需要,index但有时它是有用的.
我现在正在迁移到Ramda:
R.map((item, index) => {}, items);
Run Code Online (Sandbox Code Playgroud)
index是undefined.当然,我可以index在上限范围内创建变量,并且每次在map体内增加它,但从FP的角度来看,Ramda代表它是有点错误的.那么是否有任何构建迭代索引的方法?
给定输入:
[{ a: 1 }, { b: 2 }, { c: 3 }]
Run Code Online (Sandbox Code Playgroud)
如何退货:
{ a: 1, b: 2, c: 3 }
Run Code Online (Sandbox Code Playgroud)
使用lodash,有条件地计算集合中对象数量的好方法是什么?说我想要计算对象的数量
a < 4
Run Code Online (Sandbox Code Playgroud)
在以下集合中
[{a : 1}, {a : 2}, {a : 3}, {a : 4}, {a : 5}, {a : 6}]
Run Code Online (Sandbox Code Playgroud) 我想做这样的事情:
var data = [
{
sortData: {a: 'a', b: 2}
},
{
sortData: {a: 'a', b: 1}
},
{
sortData: {a: 'b', b: 5}
},
{
sortData: {a: 'a', b: 3}
}
];
data = _.sortBy(data, ["sortData.a", "sortData.b"]);
_.map(data, function(element) {console.log(element.sortData.a + " " + element.sortData.b);});
Run Code Online (Sandbox Code Playgroud)
并输出这个:
"a 1"
"a 2"
"a 3"
"b 5"
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,数组仍以原始形式排序. 如果字段没有嵌套在内部,这将起作用sortData. 如何使用lodash/underscore按多个嵌套字段对对象数组进行排序?
我把它变成了一个lodash功能请求:https://github.com/lodash/lodash/issues/581
我正在React中编写一个应用程序,无法避免出现一个超级常见的陷阱,该陷阱正在调用setState(...)after componentWillUnmount(...)。
我非常仔细地查看了我的代码,并尝试放置一些保护子句,但是问题仍然存在,并且我仍在观察警告。
因此,我有两个问题:
Warning: Can't perform a React state update on an unmounted component.
This is a no-op, but it indicates a memory leak in your application.
To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount
method.
in TextLayerInternal (created by Context.Consumer)
in TextLayer (created by PageInternal) index.js:1446
d/console[e]
index.js:1446
warningWithoutStack
react-dom.development.js:520
warnAboutUpdateOnUnmounted
react-dom.development.js:18238
scheduleWork
react-dom.development.js:19684
enqueueSetState
react-dom.development.js:12936
./node_modules/react/cjs/react.development.js/Component.prototype.setState
react.development.js:356
_callee$
TextLayer.js:97
tryCatch
runtime.js:63
invoke
runtime.js:282
defineIteratorMethods/</prototype[method]
runtime.js:116
asyncGeneratorStep …Run Code Online (Sandbox Code Playgroud) 我有一个变量selectedSubTopicId,我有一个subTopic对象数组:objectiveDetail.subTopics[].每个subTopic 对象都有一个字段 subTopicId
我想用它来启用或禁用和添加主题按钮.我是否可以在ng-disabled中使用lodash来测试此数组,如果数组中的任何subTopic对象元素具有subTopicId等于的数组,则报告为true selectedSubTopicId.
这是objectiveDetail中的数据示例.在这种情况下,subTopics数组中只有一个元素.
{"objectiveDetailId":285,
"objectiveId":29,
"number":1,
"text":"x",
"subTopics":[{"subTopicId":1,
"number":1}]
}
Run Code Online (Sandbox Code Playgroud)
这是我的角度控制器中由thefourtheye建议的代码:
$scope.checkDuplicateSubTopicId = function (objectiveDetail, sSubTopic) {
if (_.some(objectiveDetail.subTopics, function(currentTopic) {
return _.contains(currentTopic, selectedSubTopicId);
})) {
return true;
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
单击功能未显示的我的按钮如下所示:
<button data-ng-disabled="checkDuplicateSubTopicId(objectiveDetail, subTopicId)">
Add Topic
</button>
Run Code Online (Sandbox Code Playgroud)
问题是它不能正常工作,按钮不显示禁用.
文章(下面的链接)表明,在字符串上使用length属性会创建一个对象引用,这会不必要地降低函数的速度.
http://www.webreference.com/programming/javascript/jkm3/2.html
在这种情况下,使用lodash _.size()有什么好处?它与(native ...?)长度属性的执行方式有何不同?
如果你在计算对象中的数组或键,使用lodash大小而不是length属性有什么好处吗?
我有两个数组,一个共同的字段成员.如何轻松合并主题?
例如:
var arr1 = [{
"member" : ObjectId("57989cbe54cf5d2ce83ff9d6"),
"bank" : ObjectId("575b052ca6f66a5732749ecc"),
"country" : ObjectId("575b0523a6f66a5732749ecb")
},
{
"member" : ObjectId("57989cbe54cf5d2ce83ff9d8"),
"bank" : ObjectId("575b052ca6f66a5732749ecc"),
"country" : ObjectId("575b0523a6f66a5732749ecb")
}];
var arr2 = [{
"member" : ObjectId("57989cbe54cf5d2ce83ff9d6"),
"name" : 'xxxxxx',
"age" : 25
},
{
"member" : ObjectId("57989cbe54cf5d2ce83ff9d8"),
"name" : 'yyyyyyyyyy',
"age" : 26
}];
Run Code Online (Sandbox Code Playgroud)
预期:
var merge = [{
"member" : ObjectId("57989cbe54cf5d2ce83ff9d6"),
"bank" : ObjectId("575b052ca6f66a5732749ecc"),
"country" : ObjectId("575b0523a6f66a5732749ecb"),
"name" : 'xxxxxx',
"age" : 25
},
{
"member" : ObjectId("57989cbe54cf5d2ce83ff9d8"),
"bank" …Run Code Online (Sandbox Code Playgroud) lodash ×10
javascript ×9
ramda.js ×2
arrays ×1
flatten ×1
mapping ×1
reactjs ×1
setstate ×1
size ×1
typescript ×1