如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
Add propertie to object if property exists in another object using lodash
我有两个对象,我需要根据与另一个对象的属性匹配向一个对象添加属性:
var dependsOn= {
qTableIdent: {
//External object key mapping( object key : external key)
'RHID': 'RHID',
'CD_AGREGADO': 'NOME'
}
},
var tableCols= [
{
"targets": 1,
"title": 'RHID',
"label": 'RHID',
"data": 'RHID',
"name": 'RHID',
"width": "5%",
"filter": true,
"defaultContent": "",
"visible":false,
"type": 'hidden', //ADD this to properties
attr: {
'name': 'rhid'
},
},.....
]
我想补充一点:
"visible":false,
"type": 'hidden',
以tableCols
对象data
其中属性与 dependsOn
中的属性匹配。
https://jsfiddle.net/zwpu70no/3/
使用 Object.keys
和 Array.indexOf
函数的解决方案:
var dependsOn = {
qTableIdent: {'RHID': 'RHID', 'SEQ': 'NOME'},
qTableDocs: {'RHID': 'RHID', 'DOC': 'DOC2'}
},
tableCols = [
{
"targets": 1,
"title": 'RHID',
"label": 'RHID',
"data": 'RHID',
"name": 'RHID',
"width": "5%",
"filter": true,
"defaultContent": "",
attr: {'name': 'rhid'}
}
],
newProps = {"visible": false, "type": 'hidden'}, // new properties to insert
dataKeys = [];
Object.keys(dependsOn).forEach(function(k) {
Object.keys(dependsOn[k]).forEach(function(key) {
if (dataKeys.indexOf(key) === -1) {
dataKeys.push(key);
}
});
});
// dataKeys now contains unique keys list: ["RHID", "SEQ", "DOC"]
tableCols.forEach(function(obj) {
if (dataKeys.indexOf(obj['data']) !== -1) {
Object.keys(this).forEach((k) => obj[k] = this[k]);
}
}, newProps);
console.log(JSON.stringify(tableCols, 0, 4));
console.log(JSON.stringify(tableCols, 0 , 4));
"tableCols"数组中单个对象的输出示例:
[
{
"targets": 1,
"title": "RHID",
"label": "RHID",
"data": "RHID",
"name": "RHID",
"width": "5%",
"filter": true,
"defaultContent": "",
"attr": {
"name": "rhid"
},
"visible": false,
"type": "hidden"
}
]
相关文章:
- 选中单选框时将属性添加到输入字段
- 将css属性添加到对象的集合中
- 用javascript向数组(?)中的特定属性添加值
- AngularJs,在没有隔离的情况下将指令属性添加到作用域
- 如何将enctype属性添加到FormData()对象中
- 如何将属性添加到自定义角度指令
- 如何将额外的属性添加到bootstrapTable中
- 在 Javascript 生成的列表中,如何将自定义属性添加到 标记
- 将动态属性添加到对象末尾
- 向 JSON 对象属性添加引号
- 将地理 JSON 要素属性添加到地图框弹出窗口
- 是否有脚本/代码可以一次将链接属性添加到多个链接
- 将自定义属性添加到 vuejs 组件
- 将属性添加到带有href链接但没有#的元素
- 将属性添加到数组中的所有对象
- Jquery将data-rel属性添加到所有输入字段,并移除name属性
- 将属性添加到窗元素时是否引发事件
- 将onsubmit属性添加到表单并提交
- 将属性添加到数组中的每个对象
- 如何使用jQuery向属性添加值