Javascript 如果值为空,则删除对象
array1是一个对象数组,如下所示:Javascript 如果值为空,则删除对象,javascript,Javascript,array1是一个对象数组,如下所示: 0: {Group: 1, names: "Lastname1, Firstname1", id: 20000001} 1: {Group: 2, names: "Lastname2, Firstname2", id: 20000002} 2: {Group: 3, names: "Lastname3, Firstname3", id: 20000003} 0: {id: "20000001", photo: ""} 1: {id: "20000001"
0: {Group: 1, names: "Lastname1, Firstname1", id: 20000001}
1: {Group: 2, names: "Lastname2, Firstname2", id: 20000002}
2: {Group: 3, names: "Lastname3, Firstname3", id: 20000003}
0: {id: "20000001", photo: ""}
1: {id: "20000001", photo: "/9j/4AAQSkZJRgABAQAAAQABAAD/4QB6RXhpZgAASUkqAAgAAA…9a1EtFKAnd09f/rVlwfdFbVw7LPIoOAGNYwjc/SIaxR//2Q=="}
2: {id: "20000002", photo: ""}
3: {id: "20000003", photo: ""}
4: {id: "20000004", photo: ""}
function getForId(photos, id) {
var tmp = photos.filter(ph => ph.id == id).filter(ph => ph.photo != "");
if (tmp.length == 0) return undefined;
return tmp[0];
}
...
x = getForId(array2, "20000001");
array2也是一个对象数组,如下所示:
0: {Group: 1, names: "Lastname1, Firstname1", id: 20000001}
1: {Group: 2, names: "Lastname2, Firstname2", id: 20000002}
2: {Group: 3, names: "Lastname3, Firstname3", id: 20000003}
0: {id: "20000001", photo: ""}
1: {id: "20000001", photo: "/9j/4AAQSkZJRgABAQAAAQABAAD/4QB6RXhpZgAASUkqAAgAAA…9a1EtFKAnd09f/rVlwfdFbVw7LPIoOAGNYwjc/SIaxR//2Q=="}
2: {id: "20000002", photo: ""}
3: {id: "20000003", photo: ""}
4: {id: "20000004", photo: ""}
function getForId(photos, id) {
var tmp = photos.filter(ph => ph.id == id).filter(ph => ph.photo != "");
if (tmp.length == 0) return undefined;
return tmp[0];
}
...
x = getForId(array2, "20000001");
我想获取基于array1的特定id的照片值。我的array2可以有重复的id值,因此我想忽略带有空字符串的值
因此,在一天结束时,我想返回类似var image='/9j/4AAQSKZJRGABAQAAAQABAD/4QB6R…“
您可以使用它来获取所需的值。它将返回找到的第一个值。空字符串在javascript中为falser,因此您可以编写查找回调,如下所示:
var array2 = [{id: "20000001", photo: ""},
{id: "20000001", photo: "/9j/4AAQSkZJRgABAQAAAQABAAD/4QB6RXhpZgAASUkqAAgAAA…9a1EtFKAnd09f/rVlwfdFbVw7LPIoOAGNYwjc/SIaxR//2Q=="},
{id: "20000002", photo: ""},
{id: "20000003", photo: ""},
{id: "20000004", photo: ""}];
var result = array2.filter(function(a){ return a.photo }).map(a => a.photo);
让arr=[
{id:“2000001”,照片:},
{id:“2000001”,照片:“/9j/4AAQSKZJRGABAQAAAQABAD/4QB6RXhpZgAASUkqAAgAAA…9AETFKAND09F/RVLWFDFFBVW7LPIOAGNYWJC/SIaxR//2Q==”,
{id:“2000002”,照片:},
{id:“2000003”,照片:},
{id:“2000004”,照片:}
]
let found=arr.find(item=>item.photo&&item.id==='2000001')
console.log(found.photo)
让arr=[{
id:“2000001”,
照片:“
},
{
id:“2000001”,
照片:“/9j/4AAQSKZJRGABAQAAAQABAD/4QB6RXhpZgAASUkqAAgAAA…9AETFKAND09F/RVLWFDFFBVW7LPIOAGNYWJC/SIaxR//2Q=”
},
{
id:“2000002”,
照片:“
},
{
id:“2000003”,
照片:“
},
{
id:“2000004”,
照片:“
}
]
函数findItemByID(arr,id){
返回arr.find((photoObj)=>{
返回photoObj.photo.trim().length!==0&&photoObj.id==id
})
}
设photoObj=finditembyd(arr,“2000001”);
控制台日志(photoObj.photo)代码>尝试以下方法:
0: {Group: 1, names: "Lastname1, Firstname1", id: 20000001}
1: {Group: 2, names: "Lastname2, Firstname2", id: 20000002}
2: {Group: 3, names: "Lastname3, Firstname3", id: 20000003}
0: {id: "20000001", photo: ""}
1: {id: "20000001", photo: "/9j/4AAQSkZJRgABAQAAAQABAAD/4QB6RXhpZgAASUkqAAgAAA…9a1EtFKAnd09f/rVlwfdFbVw7LPIoOAGNYwjc/SIaxR//2Q=="}
2: {id: "20000002", photo: ""}
3: {id: "20000003", photo: ""}
4: {id: "20000004", photo: ""}
function getForId(photos, id) {
var tmp = photos.filter(ph => ph.id == id).filter(ph => ph.photo != "");
if (tmp.length == 0) return undefined;
return tmp[0];
}
...
x = getForId(array2, "20000001");
您可以(通过Array.map
)映射主数组,并对每个项目使用Array.find
获取其照片。然后按如下方式分配给当前项:
0: {Group: 1, names: "Lastname1, Firstname1", id: 20000001}
1: {Group: 2, names: "Lastname2, Firstname2", id: 20000002}
2: {Group: 3, names: "Lastname3, Firstname3", id: 20000003}
0: {id: "20000001", photo: ""}
1: {id: "20000001", photo: "/9j/4AAQSkZJRgABAQAAAQABAAD/4QB6RXhpZgAASUkqAAgAAA…9a1EtFKAnd09f/rVlwfdFbVw7LPIoOAGNYwjc/SIaxR//2Q=="}
2: {id: "20000002", photo: ""}
3: {id: "20000003", photo: ""}
4: {id: "20000004", photo: ""}
function getForId(photos, id) {
var tmp = photos.filter(ph => ph.id == id).filter(ph => ph.photo != "");
if (tmp.length == 0) return undefined;
return tmp[0];
}
...
x = getForId(array2, "20000001");
const data=[{Group:1,name:“Lastname1,Firstname1”,id:2000001},{Group:2,name:“Lastname2,Firstname2”,id:2000002},{Group:3,name:“Lastname3,Firstname3”,id:2000003}]
const images=[{id:“2000001”,照片:“},{id:“2000001”,照片:“/9j/4AAQSKZJRGABAAQAAAQAAAD/4QB6RXHPZGAASUQAAGAAA…9A1ETFBKAND09F/RVLWFFBVW7LPIOAGNYWJC/SIaxR//2Q=”,{id:“2000002”,照片:“}]
const result=data.map(x=>{
让img=images.find(i=>x.id==i.id&&i.photo!='')
if(img)Object.assign(x,{photo:img.photo})
返回x
})
console.log(结果)
使用数组的过滤器()。阅读此处:…如果您仍然有问题,请返回我们。您可以循环它并仅在值不为空时获取,然后如果您对一个值满意,请退出循环。请您帮助我,我使用了您的实现。