Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于其父数组键名,在字符串属性值前面加上前缀_Javascript_Arrays_Sorting_Object - Fatal编程技术网

Javascript 基于其父数组键名,在字符串属性值前面加上前缀

Javascript 基于其父数组键名,在字符串属性值前面加上前缀,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,上下文:我希望能够查看嵌套的对象数组,并根据属性所属的数组键,在字符串前面加上前缀 问题:在更改数据结构以在父数组中包含更多对象之前,我已经能够做到这一点。也许这不是最有效的方法,但它很有效(请欣赏任何关于整理的建议) 要附加的方法: 因此,我将根据来自“room1、room2或room3”的父键添加display的值 原始数据结构: 新的数据结构: 那么,我如何获得使用新数据结构的方法。。。更好的是,如果有的话,还有什么更好的方法呢?由于您的新结构有一个额外的(数组)层,您需要额外的循环级别:

上下文:我希望能够查看嵌套的对象数组,并根据属性所属的数组键,在字符串前面加上前缀

问题:在更改数据结构以在父数组中包含更多对象之前,我已经能够做到这一点。也许这不是最有效的方法,但它很有效(请欣赏任何关于整理的建议)

要附加的方法:

因此,我将根据来自“room1、room2或room3”的父键添加
display
的值

原始数据结构:

新的数据结构:


那么,我如何获得使用新数据结构的方法。。。更好的是,如果有的话,还有什么更好的方法呢?

由于您的新结构有一个额外的(数组)层,您需要额外的循环级别:

let temps={
room1:[{id:1,显示:“shahid”},{id:11,显示:“Zen”}],
房间2:[{id:2,显示:“阿克兰”},{id:12,显示:“朱莉娅”}],
房间3:[{id:3,显示:“zia”},{id:13,显示:“辛烷值”}]
};
for(让我们输入temps){
对于(临时[关键]项){
让test=item.display;
如果(钥匙=“房间1”){
item.display=“我们的朋友:”+测试;
}
如果(钥匙=“房间2”){
item.display=“我们的朋友:”+测试;
}
如果(钥匙=“房间3”){
item.display=“未知:”+测试;
}
}
}

控制台日志(temps)由于新结构有一个额外的(数组)层,因此需要额外的循环级别:

let temps={
room1:[{id:1,显示:“shahid”},{id:11,显示:“Zen”}],
房间2:[{id:2,显示:“阿克兰”},{id:12,显示:“朱莉娅”}],
房间3:[{id:3,显示:“zia”},{id:13,显示:“辛烷值”}]
};
for(让我们输入temps){
对于(临时[关键]项){
让test=item.display;
如果(钥匙=“房间1”){
item.display=“我们的朋友:”+测试;
}
如果(钥匙=“房间2”){
item.display=“我们的朋友:”+测试;
}
如果(钥匙=“房间3”){
item.display=“未知:”+测试;
}
}
}
控制台日志(temps)
let temps={
room1:[{id:1,显示:“shahid”},{id:11,显示:“Zen”}],
房间2:[{id:2,显示:“阿克兰”},{id:12,显示:“朱莉娅”}],
房间3:[{id:3,显示:“zia”},{id:13,显示:“辛烷值”}]
};
temps=Object.keys(temps).map(函数(键){
返回{[key]:temps[key]};
});
对于(让我来谈谈临时工){
for(输入i){
如果(钥匙=“房间1”){
i[key].forEach(e=>e.display=“我们的朋友:”+e.display);
}
如果(钥匙=“房间2”){
i[key].forEach(e=>e.display=“我们的朋友:”+e.display);
}
如果(钥匙=“房间3”){
i[key].forEach(e=>e.display=“未知:”+e.display);
}
}
}
控制台日志(临时)
let temps={
room1:[{id:1,显示:“shahid”},{id:11,显示:“Zen”}],
房间2:[{id:2,显示:“阿克兰”},{id:12,显示:“朱莉娅”}],
房间3:[{id:3,显示:“zia”},{id:13,显示:“辛烷值”}]
};
temps=Object.keys(temps).map(函数(键){
返回{[key]:temps[key]};
});
对于(让我来谈谈临时工){
for(输入i){
如果(钥匙=“房间1”){
i[key].forEach(e=>e.display=“我们的朋友:”+e.display);
}
如果(钥匙=“房间2”){
i[key].forEach(e=>e.display=“我们的朋友:”+e.display);
}
如果(钥匙=“房间3”){
i[key].forEach(e=>e.display=“未知:”+e.display);
}
}
}

console.log(temps)
回答得很好,谢谢。是的,变量名只是为了演示-我永远不会使用这样的变量名。我的用户名还有另一个道具,所以我只会覆盖显示名称。再次感谢。回答:谢谢。是的,变量名只是为了演示-我永远不会使用这样的变量名。我的用户名还有另一个道具,所以我只会覆盖显示名称。再次感谢
for (let key in temps) {
  let test = temps[key].display;
  if (key === "room1") {
    temps[key].display = "Our friend: " + test;
  }
  if (key === "room2") {
    temps[key].display = "Our friend: " + test;
  }
  if (key === "room3") {
    temps[key].display = "Unknown:" + test;
  }
}
let temps = {
  room1: { id: 1, display: "shahid" },
  room2: { id: 2, display: "akram" },
  room3: { id: 3, display: "zia" }
};
let temps = {
  room1: [{ id: 1, display: "shahid" }, { id: 11, display: "Zen" }],
  room2: [{ id: 2, display: "akram" }, { id: 12, display: "Julia" }],
  room3: [{ id: 3, display: "zia" }, { id: 13, display: "Octane" }]
};