我有一个对象:
const obj = {
name: "",
age: null
}
Run Code Online (Sandbox Code Playgroud)
如何使用 lodash 检查所有属性是否为 null 或“”?是这样,返回true,如果某些属性不为null或“”则返回false。
我的问题是,是否有办法取消lodash的去抖,而不调用去抖函数。from .cancel()lodash 仍然调用该函数。
也许我正在寻找错误的方法。如果是这样,对于类似的事情还有其他解决方案吗?
先感谢您。
我有 2 个带有 id 的对象数组:
const oldOffers = [
{
_id: "1"
},
{
_id: "2"
},
{
_id: "3"
}
];
const activeOffers = [
{
_id: "1"
},
{
_id: "5"
}
];
Run Code Online (Sandbox Code Playgroud)
我需要一个新数组,其中包含 oldOffers 中存在但 activeOffers 中不存在的对象;所以输出将是:
filteredOffers = [{
_id: "2"
},
{
_id: "3"
}
];
Run Code Online (Sandbox Code Playgroud)
我使用 2 个循环解决了这个问题,但方式很糟糕,有人有任何优雅的解决方案,也使用 lodash 吗?
users.hobbies我正在尝试计算使用的唯一计数Lodash。数据如下:
var users = [
{ 'user': 'barney', 'age': 36, 'hobbies': ['soccer','basketball'] },
{ 'user': 'fred', 'age': 40, 'hobbies': ['soccer', 'golf'] },
{ 'user': 'tom', 'age': 25, 'hobbies': ['golf'] }
];
Run Code Online (Sandbox Code Playgroud)
我努力了:
_.countBy(users, 'hobbies');
// { 'soccer,basketball': 1, 'soccer,golf': 1, golf: 1 }
Run Code Online (Sandbox Code Playgroud)
期望的输出是:
// { 'soccer':2, 'basketball':1, 'golf':2}
Run Code Online (Sandbox Code Playgroud)
我想我需要了解split它的价值users.hobbies,但我不太确定如何应用它。
我有一个嵌套对象,例如
{
name: "John",
parent:{
parent:{
parent:{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想获取主父对象的级别或基本上父对象已嵌套的次数。在这种情况下,我应该得到 的输出3。
我经常发现自己处于我想要的情况,在单个(原子)操作中,将一个项添加到数组并返回该新数组.
['a', 'b'].push('c');
Run Code Online (Sandbox Code Playgroud)
将无法正常工作,因为它返回新的长度.
我知道以下代码有效
['a', 'b'].concat(['c']);
Run Code Online (Sandbox Code Playgroud)
但我发现它是丑陋的代码(组合两个数组只是为了在第一个数组的末尾添加一个项目).
我无法使用Array.splice()它,因为它修改原始数组(并返回已删除的项目).Array.slice()确实返回浅拷贝,但您无法添加新项目.
ES6
我知道es6你可以使用
[...['a', 'b'], 'c']
Run Code Online (Sandbox Code Playgroud)
但我正在寻找es5解决方案
Lodash
我没关系 lodash
只是为了清楚
我知道这可以通过几种不同的方式实现(比如Array.concat()上面的方法),但我正在寻找一个直观的简单代码,它不会"误用"其他运算符
我有一个像这样的对象数组:
var a = [
{
"ClientSideAction": 1,
"CompletedDate": "not null",
"ItemDescription": "Step 1"
},
{
"ClientSideAction": 1,
"CompletedDate": null,
"ItemDescription": "step 2"
},
{
"ClientSideAction": 1,
"CompletedDate": "not null",
"ItemDescription": "Step 3"
},
{
"ClientSideAction": 1,
"CompletedDate": null,
"ItemDescription": "step 4"
}
];
Run Code Online (Sandbox Code Playgroud)
我该如何删除元素CompletedDate == null?
我试过了._dropWhile,但是一旦函数返回falsey就停止了,这不是我想要的.我想遍历所有对象并删除那些符合该条件的对象.现在,我知道我可以使用常规的js,但是如果可能的话我想使用lodash.我是Lodash的初学者,我正努力变得更好.
这是我用过的.dropWhile:
var a2 = _.dropWhile(a, function(o) { return o.CompletedDate == null; });
Run Code Online (Sandbox Code Playgroud) 我有一个方法需要从提供的id参数返回用户对象.其他方法将使用此结构,因此不是使用现有结构的简单情况.
基本上我有一个包含type密钥的数据库,这是过滤的,所以我有一个集合users.我需要做的是创建一个由用户_id值键入的对象,并包含带有_id和type省略的用户对象.
使用lodash或一些ES6糖我想改变以下内容Array;
[
{
"_id": "0e12e661cb50068a135b36067f001d20",
"name": "Joe Bloggs",
"type": "user"
},
{
"_id": "0e12e661cb50068a135b36067f00373f",
"name": "Ben Bloggs",
"type": "user"
}
]
Run Code Online (Sandbox Code Playgroud)
进入下面Object,用_id和type省略;
{
"0e12e661cb50068a135b36067f001d20": {
"name": "Joe Bloggs"
},
"0e12e661cb50068a135b36067f00373f": {
"name": "Ben Bloggs"
}
}
Run Code Online (Sandbox Code Playgroud)
编辑我需要返回对象而不是名称,因为可以将更多属性添加到这些对象中.
我有一个非唯一值的矩阵(或多维数组),如下所示:
var matrix = [
[1, 3, 2, 4, 1],
[2, 4, 1, 3, 2],
[4, 3, 2, 1, 4]
]
Run Code Online (Sandbox Code Playgroud)
我想对这个矩阵的一行进行排序,但是其他行应该重新排序,以保持列像组织一样.
//matrix sorted by the row 0
var sorted_matrix = [
[1, 1, 2, 3, 4],
[2, 2, 1, 4, 3],
[4, 4, 2, 3, 1]
]
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我更喜欢lodash解决方案.
我有一个如下对象:
item = {
0: 'A',
1: 'B',
2: 'C',
3: 'D'
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我想从项目对象中删除“ 1”,并且在删除之后,“ 2”和“ 3”应自动减1并成为下面的对象:
item = {
0: 'A',
1: 'C',
2: 'D'
}
Run Code Online (Sandbox Code Playgroud)
除了使用数组之外,还有可能用对象来实现这一点吗?