用空填充缺失值
Filling missing values with null
本文关键字:填充 更新时间:2023-09-26
与
unionObject相比,找到obj1中缺少的那些字段并添加值为null的缺失字段的最佳/最干净的解决方案是什么;例如对象 1:
var object1= { id: '123',
name: 'test1'
}
而联合对象是:
var unionObject = { id: '124',
name: 'test2',
type: 'type2',
files:
{
http: 'test12.com',
https: 'test2.com'
}
}
所以这里的 object1 缺少带有字段 http 和 https 和类型的文件;所以我想要的输出是:
var desiredOutput= { id: '123',
name: 'test1',
type: null,
files:
{
http: null,
https: null
}
}
请注意,这不是我给出的输出:
var notDesiredOutput= { id: '123',
name: 'test1',
type: null,
files: null
}
在 Node.JS 中执行此操作的最佳/最干净方法是什么;NPM 上是否有任何模块可以以干净的方式执行此操作?
谢谢
这是一个简单的解决方案。它使用 lodash,但不是绝对必要的。您可以将_.isUndefined
和_.isPlainObject
替换为它们的普通 JS 等效项。
function inferFromUnion(obj, union) {
Object.keys(union).forEach(function(key) {
if (_.isUndefined(obj[key])) {
if (_.isPlainObject(union[key])) {
obj[key] = {};
inferFromUnion(obj[key], union[key]);
} else {
obj[key] = null;
}
}
});
}
var unionObject = {
id: '124',
name: 'test2',
type: 'type2',
files: {
http: 'test12.com',
https: 'test2.com'
}
};
var object1 = {
id: '123',
name: 'test1'
};
inferFromUnion(object1, unionObject);
console.log(object1);
document.write(JSON.stringify(object1));
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>
相关文章:
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何通过ajax刷新JSF填充的javascript变量
- 用与线条相同的颜色填充多折线图上的点
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 用我的json数据填充JQuery DataTable
- 使用 jQuery 检查所有值是否为空或已填充
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 如何让typeahead在我的搜索栏中填充自定义参数
- 如何使用JSON字符串中的jQuery填充下拉框
- 动态填充两个下拉菜单
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- spine.js在启动时填充模型实例
- 如何将要单独填充的每个HTML画布路径/形状分开
- CSS赢得't填充视图端口
- 从JSON填充列表(而不是HTML)
- Fabric.js-更改矩形填充
- 使用JSON文件中的变量(字符串)填充文本区域
- tu如何将id放在填充了json数据的html表td上