使用 Lodash 填充数组
Populate Arrays using Lodash
使用 lodash,如何使用另一个数组中的值"填充"键数组,如下所示:
let array = [{ obj: myObject, val: 42, ref: 4 }, { val: 100, ref: 1 }];
let refs = [{ key: 4, msg: 'Hello' }, { key: 1, msg: 'there' }]
// populate array[i].ref with refs[i].key
response = populate(array, refs, {key: 'ref', foreingKey: 'key'})
/*
response = [
{ obj: myObject, val: 42, ref: { key: 4, msg: 'Hello'} },
{ val: 100, ref: {key: 1, msg: 'There'} }
];
*/
实际上,我正在手动迭代这两个数组,但是我不知道如何使用Lodash完成它。
假设键和引用是唯一的:
const lookup = _.keyBy(refs, 'key');
const response = _.map(array, x => _.merge(x, {ref: lookup[x.ref]}));
简短说明:出于效率原因,第一行创建查找哈希。第二行将数组中的每个对象与查找哈希中与 ref 与键的值匹配的项目合并。
const temp = [];
let array = [
{ obj: myObject, val: 42, ref: 4 },
{ val: 100, ref: 1 }
];
let refs = [
{ key: 4, msg: 'Hello' },
{ key: 1, msg: 'there' }
];
array.forEach(x =>{
refs.forEach(y => {
if (x.refs === y.key) {
temp.push({ ...x, ...y })
}
})
})
相关文章:
- 将数据推送到数组填充 jqGrid
- 使用 JSON 数组填充输入字段
- 用Javascript中的JSON数组填充HTML
- 动态生成的表格 - 使用数组填充TD值
- 使用数组填充if语句值
- AngularJS:用两个JSON数组填充复选框列表,最初检查了一个数组中的一些项
- 为什么不是't ng表将数据从数组填充到表中
- 在javascript中用数组填充对象
- 高图表 - 从数组填充数据
- 如何从下拉列表中由可观察数组填充的选定项中检索完整对象
- 使用 JavaScript 数组填充下拉选择框
- Javascript array.length 为 0,但数组填充了 40 个项目
- 使用 JSON 数组填充图表
- 数组填充外部函数 - 不可访问的成员
- 用 javascript 数组填充 struts2 select 标签
- 用服务器数组填充 jquery 数组
- 如何使用 json 数组填充 Rails 下拉菜单
- 在用数组填充初始化的数组上使用数组映射的意外行为
- JavaScript 风格的数组填充在 Java 中
- 如何使用 javascript 数组填充 html 标题