como logro conseguir sacar información de un vector solo por un atributo del objeto en x posición?

En un vector tengo diferentes libros, cada libro como atributos tiene su titulo, autor, stock. quisiera saber como identificar por alguno de sus atributos el libro en si

public void buscar (Libro biblioteca[]){         Scanner sc = new Scanner (System.in);         System.out.println("Escriba el nombre del libro a buscar: ");         String busqueda = sc.next();         for (int i = 0; i < biblioteca.length; i++) {             if (biblioteca[i].equals(busqueda) { //aqui no tengo respuesta                 System.out.println("Libro disponible con stock de: "+ stock);                             }             else{                 System.out.println("Libro no encontrado");             }                  }      } 

espero se entienda la idea general de mi duda. Gracias de antemano.

¿como muestro la informacion de una tabla por medio de la llave foranea?

Buenas Estoy haciendo un pequeño proyecto para ir practicando laravel.

En mi proyecto tengo dos modelos llamados catalogos y descripciones relacionadas de 1:N, lo que intento es que en mi vista donde muestro los registros de las descripciones en ves de mostrar la llave foranea de la vista de catalogos me muestre el registro a la que pertenece.

modelo de catalogos

<?php  namespace App;  use Illuminate\Database\Eloquent\Model;  class Catalogo extends Model {     protected $  table = 'catalogos';      protected $  primaryKey = 'id';      protected $  fillable = ['Nombre'];      public function descripcion(){         return $  this->belongsTo('App\Descripcione','catalogo_id');     } } 

modelo de descripciones

<?php  namespace App;  use Illuminate\Database\Eloquent\Model;  class Descripcione extends Model {     protected $  table = 'descripciones';      protected $  primaryKey = 'id';      protected $  fillable = ['catalogo_id','Descripcion'];      public function catalogo()     {         return $  this->hasMany('App\Catalogo');     } } 

controlador de descripciones

    <?php      namespace App\Http\Controllers;      use App\Http\Requests;     use App\Http\Controllers\Controller;      use App\catalogo;     use App\Descripcione;     use Illuminate\Http\Request;      class DescripcionesController extends Controller     {         public function index(Request $  request)         {              return view('descripciones.index',compact('descripciones','catalogo'));         }  **mi tabla del index de la vista de descripciones** @foreach($  descripciones as $  item)                                 <tr>                                     <td>{{ $  item->id }}</td>                                     <td>{{ $  item->catalogo_id }}</td>                                     <td>{{ $  item->Descripcion }}</td>                                     <td>                                         <a href="{{ url('/descripciones/' . $  item->id) }}" title="View Descripcione"><button class="btn btn-info btn-sm"><i class="fa fa-eye" aria-hidden="true"></i> View</button></a>                                         <a href="{{ url('/descripciones/' . $  item->id . '/edit') }}" title="Edit Descripcione"><button class="btn btn-primary btn-sm"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> Edit</button></a>                                          <form method="POST" action="{{ url('/descripciones' . '/' . $  item->id) }}" accept-charset="UTF-8" style="display:inline">                                             {{ method_field('DELETE') }}                                             {{ csrf_field() }}                                             <button type="submit" class="btn btn-danger btn-sm" title="Delete Descripcione" onclick="return confirm(&quot;Confirm delete?&quot;)"><i class="fa fa-trash-o" aria-hidden="true"></i> Delete</button>                                         </form>                                     </td>                                 </tr>                                 @endforeach 

me gustaria que en vez de la llave foranea se muestre la informacion a la que le pertenece… como podria hacerlo????

¿Por qué no se carga la informacion en mi select que mando desde el controlador?

Tengo dos select, que se cargan al entrar a la pagina, la consulta que llena mi segundo combo “claveSuc”, recibe como parámetro una clave, que es la clave que yo tengo que recuperar de lo que se elija en el combo 1 “claveAf”, por lo cual tengo el siguiente código en mi jsp, la funcion “getClave” obtiene ese valor y lo mando a mi controlador

<script type="text/javascript"> 	$  (document).ready(function(){ 		 		document.getElemnetById('claveSuc').disabled=true; 		 		 		$  ('#claveAf').change(function(){ 			var valor = $  ('#claveAf').val(); 			getClaveSuc(valor); 			if(valor >="1"){ 			 $  ('#claveSuc').attr('disabled', false); 			} 		});   	}); 	 	function getClaveSuc(value){ 		var dataString = "value="+ value; 		$  .ajax({ 			url: "/admin/registro?"+value, 			type: 'POST', 			data: dataString,  			dataType: 'json', 			success: function(data, textStatus, XmlHttpRequest){ 				if(data != null){    					console.log("exitoso"); 				} 			}, 			error: function(XmlHttpRequest, textStatus, errorThrown){ 				console.log("error"); 			} 		}); }  </script>  <div class="form_Group"> <form:select id="claveAf" class="Select" name="claveAf" path="claveAf"> 	<option value="">Seleccionar</option> 	<form:options items="$  {afor}" itemValue="clave" itemLabel="descripcion"/> </form:select> </div>  <div class="form_Group"> <form:select id="claveSuc" class="Select" name="claveSuc" path="claveSuc"> 	<option value="">Seleccionar</option> 	<form:options items="$  {sucursales}" itemValue="clave" itemLabel="descripcion"/> </form:select> <input id="seleccion" name="seleccion" type="hidden"> </div>

Este método de mi controlador es el que lanza la pagina y carga los combos, como al inicio no tengo un valor en la variable “value” que es donde se almacena la clave del combo 1, agregue la condición sino truena por null, y una vez que yo elegí una opción del combo 1, ya entra a la condición y trae la informacion correspondiente a esa clave, lo imprimo por consola, pero en mi combo 2 “claveSuc” ya no se pinta nada, ya no carga las opciones que debe de mostrar, y en la consola del navegador se ve que entra a la función del ajax, pero cae en “error”

@RequestMapping(value="/admin/registro", method = {RequestMethod.GET,RequestMethod.POST}) 	public ModelAndView registrar(@RequestParam(value="value",required=false) String value) { 		ModelAndView model = new ModelAndView("/registro", "formRegistro", new Registro()); 		RespuestaServicio respuesta = new RespuestaServicio(); 		try{ 			model = utileria.agregarAforModel(model,utileria.obtenerComboAf(servicio.obtenerAfor())); 			if(value != null){ 				model = utileria.agregarSucModel(model,utileria.obtenerComboSuc(servicio.obtenerSuc(value))); 			} 		 		}catch(Exception e){ 		 log.error("se presento un problema"): 		} 	    model = utileria.agregarRespuesta(model, respuesta); 		return model; 	}

por que si ya me trae la informacion con la clave que recupere del combo 1, no se carga nada en mi combo 2, por que pasa eso? o como más lo puedo hacer?

Sacar solo la información de un idioma con Mongoose

tengo un Backend realizado con Node.JS y ExpressJS y como base de datos estoy usando MongoDB con Mongoose y esta es la estructura de la colección de categorías.

{     "_id" : ObjectId("5d712d3b707d601fe0147730"),     "name" : {         "es" : "Aspiración",         "en" : "Aspiration"     },     "slug" : {         "es" : "aspiracion",         "es" : "aspiration"     },     "description" : {         "es" : "La mayor potencia.",         "es" : "The greatest power."     }, } 

En cada String se puede guardar en Ingles y en Español pero cuando hago un Category.find() quiero pasarle el idioma por ejemplo “es” y que solo me devuelva los String en el idioma seleccionado por ejemplo de esta manera seria el resultado que devolveria.

{     "category": [         {             "_id": "5d712d3b707d601fe0147730",             "name": "Aspiración",             "slug": "aspiracion",             "description": "El mas potente."         }     ] } 

Esta seria mi función para buscar categorías.

function getAllCategories(req, res) {   const lang = "es";    Category.find().exec((err, categoryStored) => {     if (err) {       res.status(500).send({ message: "Error del servidor." });     } else {       if (!categoryStored) {         res           .status(404)           .send({ message: "No se ha encontrado ningun producto." });       } else {         res.status(200).send({ category: categoryStored });       }     }   }); } 

Espero que me podáis ayudar por quelo he intentado pero no he conseguir sacarlo.

Un saludo y muchas gracias.

Al desinstalar mi aplicacion de android no se eliminan la informacion de la base de datos (SQLite)

Durante el desarrollo de la app, instale la aplicación en un dispositivo con android 9. Posteriormente, en la base de datos tuve que agregar una tabla nueva y por lo tanto desinstale la app para que al ejecutar se vieran los cambios. Pero sucede que al reinstalar no se agrega la nueva tabla y un campo de una tabla se esta manteniendo en la base de datos.

Esta es mi clase de configuracion de mi bd

public class DBCreator extends SQLiteOpenHelper {      private final static int VERSION = 1;     private final static String NAME = "kanban";     private static DBCreator instance;      public static void createInstance(Context context) {         if (instance == null) {             instance = new DBCreator(context);         }     }      public static DBCreator getInstance() {         return instance;     }      private DBCreator(@Nullable Context context) {         super(context, NAME, null, VERSION);     }      @Override     public void onCreate(SQLiteDatabase db) {         db.execSQL(DBQuery.CREATE_TABLE_DASHBOARD);         db.execSQL(DBQuery.CREATE_TABLE_CATEGORY);         db.execSQL(DBQuery.CREATE_TABLE_TASK);         db.execSQL(DBQuery.CREATE_TABLE_IMAGE);     }      @Override     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {      } } 

El error que me sale es:

android.database.sqlite.SQLiteException: no such table: dashboard (code 1 SQLITE_ERROR): , while compiling: SELECT * FROM dashboard ORDER BY mainDashboard DESC  

La tabla que “no he creado” es

    public final static String CREATE_TABLE_DASHBOARD = "CREATE TABLE " + TABLE_DASHBOARD + " ("             + ID_DASHBOARD + " INTEGER PRIMARY KEY AUTOINCREMENT, "             + TITLE + " VARCHAR(50) UNIQUE, "             + DESCRIPTION + " VARCHAR(255), "             + MAIN_DASHBOARD + " TINYINT(1) DEFAULT 0 "             + ")"; 

Variable que al agregarle información esta se sobre pone

Quiero traer el resultado de una sesión ssh a una variable local

FILEBACK=$  (sshpass -p 'pass' ssh admin@1.1.1.1 -p 22 -o StrictHostKeyChecking=no ':put $  rvar;') 

al ver la variable el resultado es el correcto:

$   echo "$  FILEBACK" HOLA_COMO 

Pero si quiero agregarle una extensión a ese valor, se sobrepone al principio:

$   echo "$  FILEBACK.estas" .estasOMO 

el “.estas” se coloca sobre la parte de la variable “HOLA_C” y se muestra el resto.

Como editar información de un JSON dentro de un Array en javascript/typescript (NativeScript) sin usar foreach

Como bien el titulo lo dice, busco editar un JSON que se encuentra dentro de un Array de “N” cantidad elemento, pero busco realizarlo a través de una función la cual recibirá el ìd del valor a editar, y busco que sea de la manera más sencilla posible evitando usar un foreach. Estoy realizando es una app en Nativescript con Angular.

var data = [{id:1, nombre:"nombre1", editable:true}, {id:2, nombre:"nombre2", editable: false}, {id:3, nombre:"nombre3", editable: false}, {id:4, nombre:"nombre4", editable: false}, {id:5, nombre:"nombre5", editable: false}]

Por ello me he planteado:

  • Usar la propiedad filter() para buscar por el id a editar.
  • Usar el indexOf() para obtener el indice de ese valor obtenido.
  • Usar la propiedad splice() para generar la edición

Ejemplo:

Cambiar el estado del id:2 de editable: false a editable: true

Se que suena sencillo, pero no termino de visualizar como ejecutar este código ya que no logro obtener el ìndexOf del valor filtrado. Si pueden ayudarme a diseñar esta función, se los agradeceré enormemente.

Informacion no se muestra en component de React

Estoy tratando de crear una ruta en la que pueda actualizar las paginas que tengo creadas acorde al _id especifico. El problema es que apesar de poder ver la informacion usando el Redux DevTools,etc todavia no puedo ver dicha informacion en el form que tengo creada en el componente.

Osea la ruta es algo asi:

<PrivateRoute exact path="/admin/pages/view/:id" component={PageView} /> 

En orden para poder acceder y ver la informacion correcta tengo que usar algo que se llama match para usarlo como un prop. Despues llamo al getPost con el el match.params.id en el useEffect que tengo creado. El problema reside despues de eso(en el setFormData).

En el setFormData estoy pasandole dos objetos, uno con el nombre de title y el otro con el nombre de text; ahi mismo estoy checando ‘si es que no hay page muestrame un string vacio, si no muestrame el valor correspondiente de la DB’. Por alguna razon no se muestran dicho valores!.

Aca les dejo el codigo:

import React, { useState, useEffect } from 'react'; import { Link, withRouter } from 'react-router-dom'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import Spinner from '../../layout/Spinner'; import { getPost, updatePage } from '../../../actions/admin/page';  const Update = ({ getPost, pages: { page, loading }, match, updatePage, history }) => {    const [formData, setFormData] = useState({     title: '',     text: '',   });    useEffect(() => {     getPost(match.params.id);     setFormData({       title: !page ? '' : page.title,       text: !page ? '' : page.text     });     // eslint-disable-next-line   }, [       loading,       getPost,       match.params.id     ]);    const {     title,     text   } = formData;    const onChange = e =>     setFormData({ ...formData, [e.target.name]: e.target.value });    const onSubmit = e => {     e.preventDefault();     updatePage(formData, history, true);   };    return loading || page === null ? (     <Spinner />   ) : (       <section className="mb-3">         <div className="container-fluid">           <h1 className="border-bottom-dark pb-3 mb-3">Update Your Page</h1>           <small>* = required field</small>           <form className="form" onSubmit={e => onSubmit(e)}>             <div className="form-group">               <input                 type="text"                 placeholder="* Title"                 name="title"                 autoComplete="title"                 className="form-control"                 value=Informacion no se muestra en component de React                 onChange={e => onChange(e)}               />               <small className="form-text">Could be your own nickname</small>             </div>             <div className="form-group">               <textarea                 placeholder="Write here"                 name="text"                 autoComplete="text"                 className="form-control"                 value={text}                 onChange={e => onChange(e)}               />               <small className="form-text">So what are you up to?</small>             </div>             <div className="btn-group">               <input type="submit" className="btn btn-primary my-1" />               <Link className="btn btn-dark my-1" to="/admin/pages">Go Back</Link>             </div>           </form>         </div>       </section>     ); };  Update.propTypes = {   updatePage: PropTypes.func.isRequired,   getPost: PropTypes.func.isRequired,   pages: PropTypes.object.isRequired, };  const mapStateToProps = state => ({   pages: state.page });  export default connect(   mapStateToProps,   { getPost, updatePage } )(withRouter(Update)); 

Espero y me puedan hechar la mano que realmente me estoy frustrando un poquito xD.