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