标签: lodash

如何在Ramda.map中访问迭代索引

我曾经写过类似的东西

_.map(items, (item, index) => {});
Run Code Online (Sandbox Code Playgroud)

与lodash.通常我不需要,index但有时它是有用的.

我现在正在迁移到Ramda:

R.map((item, index) => {}, items);
Run Code Online (Sandbox Code Playgroud)

indexundefined.当然,我可以index在上限范围内创建变量,并且每次在map体内增加它,但从FP的角度来看,Ramda代表它是有点错误的.那么是否有任何构建迭代索引的方法?

javascript mapping lodash ramda.js

30
推荐指数
1
解决办法
7281
查看次数

将具有对象的数组展平为1个对象

给定输入:

[{ 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 的问题,但在这里我们有对象数组.

javascript flatten lodash

29
推荐指数
2
解决办法
2万
查看次数

lodash:从数组中获取重复值

说我有这样的数组: [1, 1, 2, 2, 3]

我想得到这种情况下的重复项: [1, 2]

是否lodash支持呢?我想尽可能以最短的方式做到这一点.

javascript arrays lodash

29
推荐指数
6
解决办法
3万
查看次数

集合中的"数数"

使用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)

lodash

29
推荐指数
3
解决办法
2万
查看次数

如何使用lodash/underscore按多个嵌套字段排序?

我想做这样的事情:

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

javascript underscore.js lodash

28
推荐指数
5
解决办法
6万
查看次数

无法在已卸载的组件上执行React状态更新

问题

我正在React中编写一个应用程序,无法避免出现一个超级常见的陷阱,该陷阱正在调用setState(...)after componentWillUnmount(...)

我非常仔细地查看了我的代码,并尝试放置一些保护子句,但是问题仍然存在,并且我仍在观察警告。

因此,我有两个问题:

  1. 我如何从堆栈跟踪中找出哪个特定的组件和事件处理程序或生命周期挂钩负责违反规则?
  2. 好吧,如何解决问题本身,因为我的代码在编写时就考虑到了这种陷阱,并且已经在试图防止这种情况发生,但是某些底层组件仍在生成警告。

浏览器控制台

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)

javascript setstate typescript lodash reactjs

28
推荐指数
11
解决办法
3万
查看次数

Lodash 和 Ramda 之间的区别

所以我一直在研究一些关于 JS 框架的知识。据我所知,两个最受欢迎和现代的图书馆是LodashRamda(对吗?)。

我看到了关于 Lodash 和 Underscore 的类似问题。然而,我没有看到任何与Lodash和Ramda相关的内容。老实说,我也找不到任何基准。

有什么区别?用例怎么样?哪一个更好?

javascript lodash ramda.js

28
推荐指数
1
解决办法
1万
查看次数

可以_lodash测试一个数组来检查数组元素是否有一个具有特定值的字段?

我有一个变量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)

问题是它不能正常工作,按钮不显示禁用.

javascript lodash

27
推荐指数
2
解决办法
6万
查看次数

lodash _.size()比JS长度属性更快吗?

文章(下面的链接)表明,在字符串上使用length属性会创建一个对象引用,这会不必要地降低函数的速度.

http://www.webreference.com/programming/javascript/jkm3/2.html

在这种情况下,使用lodash _.size()有什么好处?它与(native ...?)长度属性的执行方式有何不同?

如果你在计算对象中的数组或键,使用lodash大小而不是length属性有什么好处吗?

javascript size lodash

27
推荐指数
2
解决办法
4万
查看次数

如何使用lodash合并两个对象数组?

我有两个数组,一个共同的字段成员.如何轻松合并主题?

例如:

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)

javascript lodash

27
推荐指数
2
解决办法
9万
查看次数