¡Hola, soy nuevo en Solidity!. Tengo una matriz simple que agrega algunos números en una matriz.
pragma solidity ^0.4.11;
Contract TestArray{
uint[] public numbers;
function addNumber(uint number){
numbers.push(number);
}
Esta función getNumbers() está devolviendo todos los valores
function getNumbers() constant returns(uint[]){
return numbers;
}
Pero cuando trato de verificar si el no existe, devuelve verdadero solo para el primer valor. Para el resto del valor está devolviendo falso
function checkNoExists (uint no) constant returns(bool){
for(uint i=0; i<numbers.length; i++){
if(numbers[i]==no){
return true;
} else{
return false;
}
}
}
¡Por favor ayuda!
Hay un error en su checkNoexists
función. Si marca cualquier otra cosa que no sea primero if(numbers[i]==no)
, esta condición se ejecuta como falsa i=0
y regresa false
. El código funciona como debería, su lógica es incorrecta. Usa esto en su lugar:
function checkNoExists (uint no) constant returns(bool){
for(uint i=0; i<numbers.length; i++){
if(numbers[i]==no){
return true;
}
}
return false;
}
Aniket