我试图摆脱属性5MinuteRate和15MinuteRate以下对象.
var object = { requestsPerSecond:
{ mean: 1710.2180279856818,
count: 10511,
'currentRate': 1941.4893498239829,
'1MinuteRate': 168.08263156623656,
'5MinuteRate': 34.74630977619571,
'15MinuteRate': 11.646507524106095 } };
Run Code Online (Sandbox Code Playgroud)
Lodash的omit() - 函数似乎不适用于嵌套对象.以下代码不起作用:
console.log(_.omit(object, 'requestsPerSecond.count'));
Run Code Online (Sandbox Code Playgroud)
编辑:
我尝试了这个,但它不能正常工作:
var subObject = _.omit(object.requestsPerSecond, '5MinuteRate', '15MinuteRate');
console.log(_.merge(object, subObject));
Run Code Online (Sandbox Code Playgroud)
你快到了.刚分配这将是你的结果subObject来object.requestsPerSecond.
var object = {
requestsPerSecond: {
mean: 1710.2180279856818,
count: 10511,
'currentRate': 1941.4893498239829,
'1MinuteRate': 168.08263156623656,
'5MinuteRate': 34.74630977619571,
'15MinuteRate': 11.646507524106095
}
};
object.requestsPerSecond = _.omit(object.requestsPerSecond, '5MinuteRate', '15MinuteRate');
console.log(object);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>Run Code Online (Sandbox Code Playgroud)
Lodash _.omit适用于嵌套对象。自从您提出问题以来,他们似乎改进了该功能:)
object = _.omit(object, 'requestsPerSecond.5MinuteRate', 'requestsPerSecond.15MinuteRate');
Run Code Online (Sandbox Code Playgroud)
更新
omit将从 Lodash 5 开始删除
使用unset:https : //lodash.com/docs#unset,它会变得更干净:
var obj = {
requestsPerSecond: {
mean: 1710.2180279856818,
count: 10511,
'currentRate': 1941.4893498239829,
'1MinuteRate': 168.08263156623656,
'5MinuteRate': 34.74630977619571,
'15MinuteRate': 11.646507524106095
}
};
_.forEach(['requestsPerSecond.5MinuteRate', 'requestsPerSecond.15MinuteRate'],
function(omitProperty) {
obj = _.unset(obj, omitProperty);
}
);
// Or avoiding the "extra" loop.
obj = _.unset(obj, 'requestsPerSecond.5MinuteRate');
obj = _.unset(obj, 'requestsPerSecond.15MinuteRate');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10613 次 |
| 最近记录: |