我想根据条件为变量分配一个值, 如果我收到的ID等于数组中的任何ID,
例如,我有这个:
数组:
{
key: value,
key: value,
direccion:[{
direccionId: 40,
calle: "string"
},{
direccionId: 41,
calle: "string2"
}]
}
AgregarInfo(direccionId){
var infoDireccion = this.editedItem.direccion;
console.log(direccionId);
console.log(infoDireccion.some(direccion => direccion.direccionId === direccionId));
if(infoDireccion.some(direccion => direccion.direccionId === direccionId)){
for(var i = 0; i < infoDireccion.length; i++){
this.editarCliente.txtCalle = infoDireccion[i].calle;
}
}
}
在这里,如果我收到40,则所有与id 40匹配的值都将它们分配给变量。
我是在做正确的事,还是有另一种方法?
答案 0 :(得分:1)
在这种情况下,最好使用find()
而不是some()
然后循环查找该项目。借助find()
,您可以一步一步完成这两个操作-条件是find()
是否返回任何内容,而值将是找到的项:
let editedItem = {
key: 'value',
otherkey: 'value',
direccion:[{
direccionId: 40,
calle: "string"
},{
direccionId: 41,
calle: "string2"
}]
}
function AgregarInfo(direccionId){
var infoDireccion = editedItem.direccion;
let found = infoDireccion.find(item => item.direccionId === direccionId)
let editarCliente = found ? found.calle : undefined
return editarCliente
}
console.log(AgregarInfo(40))
console.log(AgregarInfo(41))
console.log(AgregarInfo(42)) // undefined if there's no id 42