标签: lodash

Lo-Dash数组分组

我现在花了几个小时在Lo-Dash文档站点上,找不到我的问题的解决方案.我不知道它是如何调用的,因此搜索起来有点困难.我基本上想要将数组分组到一个对象中,以便重复的条目是一个字段,而不同的条目是一个数组.

例如,我有这个数组:

var characters = [
  { 'name': 'barney', 'age': 42,  'pet': 'dog' },
  { 'name': 'fred',   'age': 35,  'pet': 'dog' },
  { 'name': 'barney', 'age': 42,  'pet': 'cat' },
  { 'name': 'fred',   'age': 35,  'pet': 'goldfish' }
];
Run Code Online (Sandbox Code Playgroud)

我希望得到这个:

[
  { name: 'barney',
    age: 42,
    pet: [ 'dog', 'cat' ] },
  { name: 'fred',
    age: 35,
    pet: [ 'dog', 'goldfish' ] }
]
Run Code Online (Sandbox Code Playgroud)

有没有一个Lo-Dash方法来做这个,还是我必须链接几个?实现这一目标的最佳方法是什么?

javascript arrays lodash

10
推荐指数
2
解决办法
7874
查看次数

将LoDash与EmberCLI一起使用

有没有人有一个使用Ember-CLI使用LoDash构建的(简单)ember-app项目的工作示例?(例如:我想在我的路由和控制器中使用lodash,_.someLodashFunc).

我没有在网上看到任何关于如何做到这一点的明确,逐步解释的线索/文章.

如果可能的话,使用lodash v3.0.0(我使用的是最新的ember-cli,v0.1.9).

谢谢,拉卡


我发现了如何,你需要生成一个自定义的lodash("lodash modern").使用lodash-cli:https://lodash.com/custom-builds

在命令控制台上输入:lodash modern ...,然后你会得到一个生成的javascript文件:lodash.custom.js

将该文件放在ember-cli项目的"vendor"目录下.

修改Brocfile,添加:

app.import('vendor/lodash.custom.js', {
  'lodash': [
    'default'
  ]
});
Run Code Online (Sandbox Code Playgroud)

就是这样......你不必在你的任何js文件中执行"import _ from'loodash'".事实上,不要这样做(你会得到一个错误)._ var很容易获得.

例如,我有一个这样的Route对象:

import Ember from 'ember';

export default Ember.Route.extend({
  model: function() {
    console.log('hohoho: ' + _.chunk(['a', 'b', 'c', 'd'], 2));
    return Ember.Object.create({name: 'Raka'});
  }
});
Run Code Online (Sandbox Code Playgroud)

我可以看到hohoho:,b,c,当我访问那条路线时,我在javascript控制台中打印出来.

更正

你真的不需要那个lodash-cli.

我试过这种方式(我想更合适):

  1. 凉亭安装lodash --save
  2. 在Brocfile.js中,有这一行:app.import('bower_components/lodash/lodash.js');

而已._在路由器/控制器中自动可用.

我对d3做了同样的事情:

  1. 凉亭安装d3 - 保存
  2. 在Brocfile.js中,有这一行:app.import('bower_components/d3/d3.js');

名为'd3'的变量可自动使用.


新增相关链接:

  1. 在ember-cli中导入自定义库
  2. http://tiku.io/questions/2866484/how-to-include-a-local-javascript-im-ember-cli-application(引用:如果你不需要在vendor.js文件中缩小它们,你可以将它们放在public/js中,然后将其作为普通脚本文件包含在app/index.html中.我将此方法用于某些库,如moment.js.公共文件夹在构建期间直接复制到您的站点根目录. )
  3. 在Ember CLI中访问D3等第三方库的正确方法?

ember.js lodash ember-cli

10
推荐指数
2
解决办法
3973
查看次数

Lodash findIndex无法正常工作

为什么lodash在这里返回-1?它显然在那里?

Ignores = ['load', 'test', 'ok'];
alert(_.findIndex(Ignores, 'ok') );
Run Code Online (Sandbox Code Playgroud)

javascript lodash

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

查找对象是否是javascript中另一个对象的子集

我需要一个函数isSubset,当给定两个对象时,它会比较它的值并判断一个对象是否是另一个对象的子集.

object1 = { pickUpLocation : {city : 'Hyderabad', state: 'Telangana' }};
object2 = { dist : 322, pickUpLocation:  {city : 'Hyderabad', state: 'Telangana' }};
Run Code Online (Sandbox Code Playgroud)
isSubset(object1, object2); //should return true
Run Code Online (Sandbox Code Playgroud)
object3 = { pickUpLocation : {city : 'Chennai', state: 'Telangana' }}
object4 = { dist : 322, pickUpLocation: {city : 'Hyderabad', state: 'Telangana' }}
Run Code Online (Sandbox Code Playgroud)
isSubset(object3, object4) //should return false as city's value is different
Run Code Online (Sandbox Code Playgroud)

javascript lodash

10
推荐指数
5
解决办法
6084
查看次数

检测_是lodash还是下划线

什么是"权威"方法来检测_变量是否加载了lodash或下划线?

我在有时也可以加载下划线的环境中使用lodash进行项目.

目前,我想出了这个:

/** 
 * lodash defines a variable PLACEHOLDER = '__lodash_placeholder__'
 * so check if that is defined / contains the string "lodash"
 */
if ( typeof( _.PLACEHOLDER ) == 'undefined' || _.PLACEHOLDER.indexOf( 'lodash' ) < 0 ) {
    // _ is underscore, do what I need to access lodash
}
Run Code Online (Sandbox Code Playgroud)

重要更新:以上代码不起作用!

是否有一种"权威"方式来检测是否_是lodash或下划线?

注意:
这是一个特定的请求,用于确定是否在_变量中加载了lodash或下划线:
1.无论是否加载下划线,我都无法控制.(lodash 我的控制范围之内,而且将永远被载入).
2.不能依赖lodash /下划线的加载顺序.
3.加载的下划线版本可能会更改(它是可以更新的CMS框架的一部分).
4. Lodash 4.17.x有300多个功能.我的代码使用 lodash中的 …

javascript underscore.js lodash

10
推荐指数
2
解决办法
2303
查看次数

Lodash映射键和对象上的值

我的代码:

const orig = {" a ":1, " b ":2}
let result = _.mapKeys(_.mapValues(orig, (v) => v + 1), (v, k) => k.trim())
Run Code Online (Sandbox Code Playgroud)

实际和期望的结果= {"a":2,"b":3}

但是有更好的Lodashy方式吗?

javascript lodash

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

最佳算法在javascript中分组数据

以下(简化的)json类型的数据定义了一个联系人:

{
  id:   number;
  name: string;
  phone: string;
  email: string
}
Run Code Online (Sandbox Code Playgroud)

有以下数据组:

+---+----------+-------------+---------------------------+ 
|id | name     | phone       |email                      | 
+---+----------+-------------+---------------------------+
|1  | John     | 11111111    |aaaa@test.com              | 
|2  | Marc     | 22222222    |bbbb@test.com              | 
|3  | Ron      | 99999999    |aaaa@test.com              |
|4  | Andrew   | 55555555    |dddd@test.com              |
|5  | Wim      | 99999999    |gggg@test.com              |
|6  | Marc     | 33333333    |cccc@test.com              |
|7  | Dan      | 44444444    |cccc@test.com              |
+---+----------+-------------+---------------------------+
Run Code Online (Sandbox Code Playgroud)

目标是根据以下约束找到使用javascript属于一起的组(可选地在lodash中,但主要思想是使算法清楚):当以下任何条件相同时,联系人属于一个组:name,电话还是邮件.结果显示id被分组为数组中的数组.忽略1组中的联系人.

在上面的示例中,这意味着与ids 1,3,5的联系人属于一起,因为1,3共享相同的电子邮件,3和5共享相同的电子邮件.同样2,6,7:2和6具有相同的名称,6和7具有相同的电子邮件.5没有任何共同之处.因此,预期结果是:
[[1,3,5], [2,6,7]]

背景:一个有效的解决方案是迭代每个项目,如果名称,电子邮件或电话相同,则检查列表的其余部分.如果是这样,将它们分组并将它们从列表中取出(在示例中,我们将1与列表中的所有项目进行比较,只找到3个).问题是还需要再次检查下一个项目到这些组,因为在这种情况下,5尚未被检测为组的一部分.这使算法变得复杂,而我怀疑有一种简单的方法可以在线性时间内解决这个问题.这类问题可能还有一个名字?`

javascript algorithm grouping lodash

10
推荐指数
1
解决办法
227
查看次数

开玩笑地监视模块功能

我正在用玩笑编写测试,其中我想监视一些 lodash 函数,我在模块中单独导入这些函数(而不是将整个 lodash 模块导入为_),例如

/** matrix.js **/
import shuffle from 'lodash/shuffle'
import pick from 'lodash/pick'

// ...

/**
 * Shuffles the order of the rows in the matrix. If a column/variable name
 * is specified, only the rows in this column are shuffled.
 *
 * @export
 * @param {array} matrix The matrix to be shuffled
 * @param {array} columns  Array containing the variable/column to be shuffled
 * @returns {array}
 */
export function shuffleVert (matrix, columns) {
  if …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing lodash jestjs es6-modules

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

如何使用lodash在数组中插入特定索引?

我已经看到了 lodash 文档,但我不知道我需要使用什么函数来解决我的问题。我有数组

const arr = [
  {name: 'john'},
  {name: 'jane'},
  {name: 'saske'},
  {name: 'jake'},
  {name: 'baki'} 
]
Run Code Online (Sandbox Code Playgroud)

我想{name: 'ace'}在 saske 之前添加。我知道 javascript 中的 splice,但我想知道这在 lodash 中是否可行。

javascript lodash

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

Cypress:找不到模块:错误:无法解析“cypress/types/lodash”

我正在从 VS IDE 在 Cypress 中运行我的第一个测试,Cypress 一直在工作,直到我遇到下面的错误,而没有更改或更新任何内容。

使用 Node.js 14.16.1 通过 NPM 命令安装的 Cypress (7.0.0) 在执行测试时遇到“找不到模块:错误:无法解析‘cypress/types/lodash”错误消息。

我尝试从项目中删除所有 loadash 文件并执行代码,但错误保持不变。

有人可以告诉我如何诊断或解决这个问题吗?


错误信息:

Error: Webpack Compilation Error
./cypress/integration/myTests/helloWorld.test.js
Module not found: Error: Can't resolve 'cypress/types/lodash' in 'C:\Users\.....\Documents\.....\Tools\Cypress\Software\cypress\integration\myTests'
resolve 'cypress/types/lodash' in 'C:\Users\.....\Documents\.....\Tools\Cypress\Software\cypress\integration\myTests'
  Parsed request is a module
  using description file: C:\Users\.....\Documents\.....\Tools\Cypress\Software\package.json (relative path: ./cypress/integration/myTests)
    Field 'browser' doesn't contain a valid alias configuration
    Looked for and couldn't find the file at the following paths:
[C:\Users\.....\Documents\.....\Tools\Cypress\Software\cypress\integration\myTests\node_modules]
[C:\Users\.....\Documents\.....\Tools\Cypress\Software\cypress\integration\node_modules]
[C:\Users\.....\Documents\.....\Tools\Cypress\Software\cypress\node_modules]
[C:\Users\.....\Documents\.....\Tools\Cypress\node_modules]
[C:\Users\.....\Documents\.....\Tools\node_modules]
[C:\Users\.....\Documents\.....\node_modules]
[C:\Users\.....\Documents\node_modules]
[C:\Users\.....\node_modules]
[C:\Users\node_modules]
[C:\node_modules] …
Run Code Online (Sandbox Code Playgroud)

javascript node.js npm lodash cypress

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