javascript - 在数组中添加新的键和值

标签 javascript jquery arrays

我有一个数组,其中有多个键name和不同的abteilung键:

{abteilung: "Research & Development", name: "Susanne Gast"}, {abteilung: "HR", name: "John Doe"}, {abteilung: "HR", name: "Joe Doe"}...

现在我想为每个名称添加一个具有唯一ID的关键目标。我还想为每个键+值 abteilung 添加一个带有 id 的键 sourceabteilung 有重复项。

我可以添加键+值目标。但是如何为 abteilung

添加键+值
let linksArray = links;
let u = 0, let a = 0, ln = linksArray.length;       
for (u;u<ln;u++){   
   linksArray[u].target = u+1;
}

感谢您的提示

最佳答案

为了分配,您可以首先构建一个 Map,其中每个唯一的 abteilung 都有一个键。然后,Map 值可以成为连续的数字。最后在该 Map 中对每个对象执行查找,并将检索到的数字分配给 source 属性:

const links = [{abteilung: "Research & Development", name: "Susanne Gast"}, {abteilung: "HR", name: "John Doe"}, {abteilung: "HR", name: "Joe Doe"}];

const map = new Map(links.map(o => [o.abteilung, 0]));
Array.from(map.keys(), (abteilung, i) => map.set(abteilung, i+1));
links.forEach(o => o.source = map.get(o.abteilung));
console.log(links);

我没有包含对target的分配,因为您已经可以正常工作了。

如果编号不一定是无间隙的序列,但允许有间隙,那么也可以在Map构建时指定序列号:

var links = [{abteilung: "Research & Development", name: "Susanne Gast"}, {abteilung: "HR", name: "John Doe"}, {abteilung: "HR", name: "Joe Doe"}];

let i = 0;
const map = new Map(links.map(o => [o.abteilung, i++]));
links.forEach(o => o.source = map.get(o.abteilung));
console.log(links);

关于javascript - 在数组中添加新的键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57027493/

相关文章:

C - 对结构指针数组进行排序比直接对结构进行排序 (qsort)

javascript - 如何以编程方式播放刚在HTML5中录制的webm音频?

javascript - ES6方式 - 按键从嵌套数组中获取唯一值

javascript - 使用 jquery 通过复选框更新数据

javascript - 在 fancybox 上是/否形式

javascript - 事件多次触发

javascript - 为 WordPress WPBakery Visual Composer Post Grid 调用 JavaScript 自定义添加类?

javascript - 如何根据从数据库动态生成的选项创建数组?

java - 移动数组中的元素

java - 检查二维矩阵上的所选图 block 是否全部连接