在多层数组里面下,已知id为131,可以用到什么办法找到name值为小丽的对象?
var listss = [
[{
id:128,
name:"小明",
},
{
id:129,
name:"小红",
},
],
[{
id:130,
name:"小方",
},
{
id:131,
name:"小丽",
},
],
[{
id:132,
name:"小林",
},
{
id:133,
name:"小雨",
},
]
]
方法一:
let target = listss.flat().find(item => {
return item.id === 131
})
console.log("目标对象为:", target)
方法二:
let target
for (let i = 0; i < listss.length; i++) {
for (let j = 0; j < listss[i].length; j++) {
if (listss[i][j].id === 131) {
target = listss[i][j]
break;
}
}
}
console.log("目标对象为:", target)
参考GPT和自己的思路:可以使用 JavaScript 的嵌套循环以及条件语句来实现。具体的代码如下:
// 定义要查找的id和name
var targetId = 131;
var targetName = "小丽";
// 嵌套循环查找
for (var i = 0; i < listss.length; i++) {
for (var j = 0; j < listss[i].length; j++) {
// 找到目标对象
if (listss[i][j].id === targetId && listss[i][j].name === targetName) {
console.log("找到了目标对象:", listss[i][j]);
// 可以在这里执行其他操作,比如将目标对象从数组中删除
break;
}
}
}
以上代码会遍历多层数组中的每一个对象,然后判断它的id和name是否和目标相符。如果找到了目标对象,可以在循环中执行其他操作,比如将该对象从数组中删除。如果没找到目标对象,则循环会继续执行直到遍历完所有对象。