如何在JavaScript中为条件赋值

时间:2018-11-15 17:10:16

标签: javascript arrays vue.js

我想根据条件为变量分配一个值, 如果我收到的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匹配的值都将它们分配给变量。

我是在做正确的事,还是有另一种方法?

1 个答案:

答案 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