https://lodash.com/docs#mapKeys
是否可以使用Lodash深度映射对象的键?如果没有,是否有另一个库提供此功能(如果与其他深度迭代和操作功能组合,甚至更好!)?另外,如何实现这一目标呢?我看到的主要斗争是识别安全,深度可迭代的纯键/值对象.抛出数组很容易,但重要的是要注意函数不应该尝试深度迭代其他对象,例如正则表达式.
预期结果 -
var obj = { a: 2, b: { c: 2, d: { a: 3 } } };
_.deepMapKeys(obj, function (val, key) {
return key + '_hi';
});
// => { a_hi: 2, b_hi: { c_hi: 2, d_hi: { a_hi: 3 } } }
Run Code Online (Sandbox Code Playgroud) 我有一个lodash变量;
var usernames = _.map(data, 'usernames');
Run Code Online (Sandbox Code Playgroud)
产生以下内容;
[
"joebloggs",
"joebloggs",
"simongarfunkel",
"chrispine",
"billgates",
"billgates"
]
Run Code Online (Sandbox Code Playgroud)
我怎么能调整lodash语句,以便它只返回一个唯一值数组?例如
var username = _.map(data, 'usernames').uniq();
Run Code Online (Sandbox Code Playgroud) 我有一些对象:
var results= [
{
"_type": "MyType",
"_id": "57623535a44b8f1417740a13",
"_source": {
"info": {
"year": 2010,
"number": "string",
},
"type": "stolen",
"date": "2016-06-16T00:00:00",
"createdBy": "57469f3c71c8bf2479d225a6"
}
}
];
Run Code Online (Sandbox Code Playgroud)
我需要从数组中选择特定字段.结果,我想得到以下内容:
[
{
"_id": "57623535a44b8f1417740a13",
"info": {
"year": 2010,
"number": "string"
},
"type": "stolen",
"date": "2016-06-16T00:00:00",
"createdBy": "57469f3c71c8bf2479d225a6"
}
]
Run Code Online (Sandbox Code Playgroud)
如您所见,我想选择对象的_id字段和内容_source.我怎么能用lodash做到这一点?
我找到了.map函数,但它不需要一组键:
var res = _.map(results, "_source");
如何对共享公共密钥的对象中的值求和?我需要使用Lodash,因为如果这些数组变得庞大,我需要良好的性能.
var prjMgrValues = [
{"proj_mgr":"Jack ProjManager","submitted_dollars":12000},
{"proj_mgr":"Jack ProjManager","submitted_dollars":750000},
{"proj_mgr":"Joe ProjManager","submitted_dollars":45000}
]
Run Code Online (Sandbox Code Playgroud)
我正在寻找输出
[
{"proj_mgr":"Jack ProjManager","submitted_dollars":762000},
{"proj_mgr":"Joe ProjManager","submitted_dollars":45000}
]
Run Code Online (Sandbox Code Playgroud) 让我们说我有一个对象
filter: {
"ID": false,
"Name": true,
"Role": false,
"Sector": true,
"Code": false
}
Run Code Online (Sandbox Code Playgroud)
我想将所有键设置为false(重置它们).什么是最好的方法,我想避免循环foreach和东西.任何整洁的衬垫?
对于Python来说,是否有一个库或类似于lodash的东西?我们在API上广泛使用该库,在我们继续创建一系列Python工作器时,为API语法创建类似的结构是有意义的.
我有两个对象数组,其中包含具有标签和实际地址对象的地址:
var originalAddresses = [
{
label: 'home',
address: { city: 'London', zipCode: '12345' }
},
{
label: 'work',
address: { city: 'New York', zipCode: '54321' }
}
];
var updatedAddresses = [
{
label: 'home',
address: { city: 'London (Central)', country: 'UK' }
},
{
label: 'spain',
address: { city: 'Madrid', zipCode: '55555' }
}
];
Run Code Online (Sandbox Code Playgroud)
现在我想合并这些数组label并比较地址的各个属性,并仅合并实际存在的新地址的属性.所以结果应该是这样的:
var result = [
{
label: 'home',
address: { city: 'London (Central)', zipCode: '12345', country: 'UK' }
},
{
label: …Run Code Online (Sandbox Code Playgroud) lodash中有_.merge功能.我想在ES6或ES7中实现同样的功能.
有这个片段:
Object.assign({}, {key: 2}, {key: undefined})
Run Code Online (Sandbox Code Playgroud)
我想收到{key: 2}.目前我收到了{key: undefined}
这不是深度合并.
可能吗?如果是,那么如何实现呢?
我想知道什么是最干净的方法,根据a过滤对象数组的更好方法string keyword.必须在对象的任何属性中进行搜索.
当我输入时,lea我想通过所有对象及其所有属性来返回包含的对象lea
当我输入时,italy我想通过所有对象及其所有属性来返回包含的对象italy.
我知道tere有很多解决方案,但到目前为止我只看到了一些你需要指定你想要匹配的属性.
ES6并lodash欢迎!
const arrayOfObject = [{
name: 'Paul',
country: 'Canada',
}, {
name: 'Lea',
country: 'Italy',
}, {
name: 'John',
country: 'Italy',
}, ];
filterByValue(arrayOfObject, 'lea') // => [{name: 'Lea',country: 'Italy'}]
filterByValue(arrayOfObject, 'ita') // => [{name: 'Lea',country: 'Italy'}, {name: 'John',country: 'Italy'}]Run Code Online (Sandbox Code Playgroud)
????????????????????????????????????????????????????????????????????????????????
? Low ? Prototype Pollution ?
????????????????????????????????????????????????????????????????????????????????
? Package ? lodash ?
????????????????????????????????????????????????????????????????????????????????
? Patched in ? >=4.17.5 ?
????????????????????????????????????????????????????????????????????????????????
? Dependency of ? react-native-cached-image ?
????????????????????????????????????????????????????????????????????????????????
? Path ? react-native-cached-image > lodash ?
????????????????????????????????????????????????????????????????????????????????
? More info ? https://npmjs.com/advisories/577 ?
????????????????????????????????????????????????????????????????????????????????
found 11 vulnerabilities (2 low, 8 moderate, 1 high) in 26316 scanned packages
11 vulnerabilities require manual review. See the full report for details.
Run Code Online (Sandbox Code Playgroud)
当我尝试时npm install,会显示,并且所有这些都需要手动检查。我尝试访问此网站以查看更多信息,这显然是因为我lodash的版本是4.17.4。因此,我随后运行npm install --save …
lodash ×10
javascript ×8
arrays ×2
babel ×1
ecmascript-6 ×1
ecmascript-7 ×1
key ×1
merge ×1
node.js ×1
npm ×1
object ×1
python ×1
react-native ×1
reactjs ×1