javascript – como insertar una función dependiendo del índice de la iteración

estoy usando angular y ionic.
Tengo un menú de navegación que se pinta a través de un ngFor, en una de esas iteraciones quiero agregarle un función, un (click)="toggleSubmenu()".
Puedo usar indexOfelement para encontrar el número de la iteración.
Pero como hago para insertar esa funcion solo en la iteracion numero 2?

java – Hola, Mi duda es ¿Por qué me sale primero el scanner antes de mi pregunta del comando System.out.print(“”)?

¡Gracias por contribuir en StackOverflow en español con una respuesta!

  • Por favor, asegúrate de responder a la pregunta. ¡Proporciona información y comparte tu investigación!

Pero evita

  • Pedir ayuda o aclaraciones, o responder a otras respuestas.
  • Hacer declaraciones basadas en opiniones; asegúrate de respaldarlas con referencias o con tu propia experiencia personal.

Para obtener más información, consulta nuestros consejos sobre cómo escribir grandes respuestas.

php – ¿Cómo logro que mi valoración con estrellas se acumulen y promedien para generar una valoración global del producto?

estoy creando un e-commerce para mi página de venta de salsas en línea.

Ya cuento con el código para que puedan calificar de manera gráfica cada producto, el problema es que no logro que estas calificaciones se almacenen y promedien para mostrar la calificación global del producto.

Mi código HTML con los dos scripts que ocupa java queda de la siguiente manera:

<!DOCTYPE html>

<html>
<head>
    <meta charset="utf-8">
    <title>rating test</title>
    <link rel="stylesheet" href="http://es.stackoverflow.com/src/rating.css" type="text/css" media="screen" title="Rating CSS">
</head>

<body>

    <div class="container" style="margin-top:35px">
      <div class="ratings">
        <input type="radio" name="star" id="rating" value="1" />
        <input type="radio" name="star" id="rating" value="2" />
        <input type="radio" name="star" id="rating" value="3" />
        <input type="radio" name="star" id="rating" value="4" />
        <input type="radio" name="star" id="rating" value="5" />
      </div>
      <span class="info"></span>
    </div>

  <script type="text/javascript" src="https://es.stackoverflow.com/js/jquery.min.js"></script>

  <script>
  ;(function($){
      $.fn.rating = function(callback){

          callback = callback || function(){};

          // each for all item
          this.each(function(i, v){

              $(v).data('rating', {callback:callback})
                  .bind('init.rating', $.fn.rating.init)
                  .bind('set.rating', $.fn.rating.set)
                  .bind('hover.rating', $.fn.rating.hover)
                  .trigger('init.rating');
          });
      };

      $.extend($.fn.rating, {
          init: function(e){
              var el = $(this),
                  list = '',
                  isChecked = null,
                  childs = el.children(),
                  i = 0,
                  l = childs.length;

              for (; i < l; i++) {
                  list = list + '<a class="star" title="' + $(childs(i)).val() + '" />';
                  if ($(childs(i)).is(':checked')) {
                      isChecked = $(childs(i)).val();
                  };
              };

              childs.hide();

              el
                  .append('<div class="stars">' + list + '</div>')
                  .trigger('set.rating', isChecked);

              $('a', el).bind('click', $.fn.rating.click);
              el.trigger('hover.rating');
          },
          set: function(e, val) {
              var el = $(this),
                  item = $('a', el),
                  input = undefined;

              if (val) {
                  item.removeClass('fullStar');

                  input = item.filter(function(i){
                      if ($(this).attr('title') == val)
                          return $(this);
                      else
                          return false;
                  });

                  input
                      .addClass('fullStar')
                      .prevAll()
                      .addClass('fullStar');
              }

              return;
          },
          hover: function(e){
              var el = $(this),
                  stars = $('a', el);

              stars.bind('mouseenter', function(e){
                  // add tmp class when mouse enter
                  $(this)
                      .addClass('tmp_fs')
                      .prevAll()
                      .addClass('tmp_fs');

                  $(this).nextAll()
                      .addClass('tmp_es');
              });

              stars.bind('mouseleave', function(e){
                  // remove all tmp class when mouse leave
                  $(this)
                      .removeClass('tmp_fs')
                      .prevAll()
                      .removeClass('tmp_fs');

                  $(this).nextAll()
                      .removeClass('tmp_es');
              });
          },
          click: function(e){
              e.preventDefault();
              var el = $(e.target),
                  container = el.parent().parent(),
                  inputs = container.children('input'),
                  rate = el.attr('title');

              matchInput = inputs.filter(function(i){
                  if ($(this).val() == rate)
                      return true;
                  else
                      return false;
              });

              matchInput
                  .prop('checked', true)
                .siblings('input').prop('checked', false);

              container
                  .trigger('set.rating', matchInput.val())
                  .data('rating').callback(rate, e);
          }
      });

  })(jQuery);
  </script>
  <script>
  $('.ratings').rating(function(vote, event){
    $.ajax({
      url: '../src/insrating.php',
      type: 'GET',
      data: {rate:vote}
    }).done(function(info){
      $('.info').html("your vote: <b>"+vote+"</b>")
    })
  })
  </script>

</body>
</html>

El CSS queda de la siguiente manera:

.star{
    background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABQCAYAAAAZQFV3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABOFJREFUeNrsmEFoHFUYx9/MdHfTJRKzUhBaFiL1YghZCFQUIV6UQJuLWCgr8eKpIoiFSqsHQYrmYj14KHqxKAl6MbA5eCgKRVAMBhpCwIJQCETRQzTsNtnO7s74+17fbGc3M7OzZhUsHfjzdvd97/++973vff99Y/m+rwb5WL0Idz60h2nckTc8Nw2hncLmAnhtIB7i3VGan8VD8Dhebh+U8FOaX8Bh4EB48R8TQlai+QnkgMTxD/AYpFt9EULk0EyBD8Dn4BPT9TZ4CrwD6Wos4V+XrUdpXzQk4tUEkAFXwNUu+1fAWWO7anADLDLJTkCYpf0K3DQe3Ui5oUI6B8ShlyBstZfMMiXoX4MV8GZKQgnJcXA6nKPtGJoE/gZ8Cy6mIJPwnIJsL3ZTIB2h+U6WANZjyE6Aj8Cz3WT7TooJ7HUwneDdc+BaFFnc0SuCzQTCTWOT+iwfN6cjWJ6clo9NzOS5Bcb6IZTZj5pU+syEYNV8XzA2Y6lOCptyhGbDeDFPnJa6TlGZ5rxJ/nxkSRPCACR5EUyHf4sCNjOgENVn/ecVe+CEy8vLWgJmZ2fd1IRra2vxSbe5eYlmu1gsXo6zmZycTKcpkEn6vC61kM+FQYiUeDdvauP5Ay0ZjyIlgKVv9bVkiBwQVJRX2YwWkKLxrhxB+qYSPaxUKrESANHVrh2PlQAzqSbskAA6UkkA5B0SICvRSzb5ddrMWu4jh8umSLwckLVjSKClWJ6SwsrM76fwLpCAM4x1I9OGjhrN8+AkAyYSyGTDnhEHjCPxeYhBagmIIvtXJOBQkgSY5Z01/76umAy4lbpiG5IqzQuG6Alz9LLmf+IP5hh+AfmxnoSQdUgAg5a6JuuQgMiSFi7fJHkR9JQAbGbA/SoBi4uLWgLK5XIqCdBpkyQBZne3sTm4BGxsbLQlgM+DkYBsNjucyWQKaSXATvCuZFnWHIQqlxMVUOeMx/0RMsgBWgIgcyBVgqwwIwH0JUvAwsJChwQwuOQ4jrJtO/CsfQBc11We56lWqyXfOySALNgJdlmuWzNSB/P5vBKyyJnxMjxBs9mc2tvbEye+DN1l7uYhuaZvAXg1LaQyOOkRL3d3d8XLishHOEd1DMfHx7UEYLjCrCop2aXP2Mht4QxjoyWADi0BxGddZm80GjpWYSL5TfpkYnHAOBK/yxhoCZAl1et1PbharWrUajX9m/SJBESRJUlAr6fvW0CvZyyxOIQPN4kbnv1mlwQERGPhMbHli/Q5Yv5lSdDnSYelrlLWIQGRJS1cvjk1RdBTArCZAferBPT7IkjvcuP7t3pKADaxEpB5+r10FXv3x3kKqqUlgM+DkQB76OFhKzdycAnAo5KynTlraFTZQ4/gqH3ursd9EjLIAVoC7KGCAxFWNqSjWgLoS5aAfS+C7EzJcrLKOjSkrNwoFu0ToPz6n8pv3dFQXjPyRdA9CbDsk/ZDx5SQxWiAsg4X7vE361NedQsn/P0SELwIgmzaHiZMtpMcKK+pWlUuVF6j0v0iSMcw/+QFLQF+y13xbv/GpF4CWUt5tV+FTEsAY6MlgA4tASxlnaUo362yLGLlh2Lo1iCjj4nFAeNI/H9sDHbYxesEfcK//XvSoq9Fkf0/JCDqDWfV3I+TJGCLne19CzAvgtoS8OBF0APC6OdvAQYAj2xzC/IfXBsAAAAASUVORK5CYII=');
    background-position:left -2px;
    display:block;
    width:20px;
    height:16px;
    line-height:16px;
    float:left;
    cursor: pointer;
    zoom:1;
}

.fullStar{
    background-position:left -59px;
}

.stars{
    overflow: hidden;
}

.tmp_es{
    background-position:left -21px;
}

.tmp_fs{
    background-position:left -40px;
}

Supongo la solución general es implementar algo similar a esto en el PHP con la intención de tener una variable acomuladora ($voteacomulado) y cambiar esta linea del HTML $(‘.info’).html(“your vote: “+vote+”“) por $(‘.info’).html(“your vote: “+voteacomulado+”“) para mandar a llamar la variable acomuladora lejos de la calificación dada por el usuario, pero mis conocimientos de PHP son casi nulos.

<?php
$vote = isNaN(vote) ? 0 : vote;
$voteacomulado += voteacomulado;

echo $_POST(‘vote’)

Les agradezco su tiempo y apreciaría mucho me pudieran apoyar a solucionar esto.

c# – Como levantar texto de un archivo.txt y crear un objeto por cada linea del archivo e insertarlo en un List

Buenas lo que quiero hacer es lo siguiete. tengo un archivo.txt con lo siguiente

123;juan;Casemiro;Fisica;6.00;Martes, 14 de Agosto de 2020
132;Marcelo;Avila;Matematicas:8.00;Jueves, 16 de Agosto de 2020

Lo que quiero hacer es cargar cada valor en un objeto.

objeto1

legajo: 123
nombre:juan
apellido:casemiro
nombreMateria:fisica
Nota:.00
Fecha:Martes, 14 de Agosto de 2020

objeto2

legajo:132
nombre:marcelo
apellido:avila
nombreMateria:matematicas
Nota:8.00
Fecha:Jueves, 16 de Agosto de 2020

Luego cargar estos objetos en un List de tipo Informe, luego ordenarlo para poder pasar a realizar el corte de control.

public List<Informe> Lista()
    {
        string linea = "";
        string ruta = "C:/Ing. en sistemas 2/1° Año/2º Cuatrimestre/Programacion 1/2 Parcial/ArchivoSecuencial/ Archivo.txt";

        int legajo;
        string nombre, apellido, nombreMateria, fecha;
        float nota;

        List < Informe > lista = new List<Informe>();

        FileStream archivo = new FileStream(ruta, FileMode.Open, FileAccess.Read);
        StreamReader leer = new StreamReader(archivo);

        do
        {
            linea = leer.ReadLine();

            **string() informe = new string(6);**

            informe = linea.Split(';');

            legajo = int.Parse(informe(0));
            nombre = informe(1);
            apellido = informe(2);
            nombreMateria = informe(3);
            nota = float.Parse(informe(4));
            fecha = informe(5);

            Informe infor = new Informe(legajo, nombre, apellido, nombreMateria, nota, fecha);

            lista.Add(infor);

        } while (linea != null);

        archivo.Close();

        return lista;
    }


    public List<Informe> OrdenarLista()
    {
        List<Informe> lista;

        lista = Lista();

        lista.Sort(
            delegate(Informe a, Informe b)
            {
                return a.legajo.CompareTo(b.legajo) & a.nombre.CompareTo(b.nombre);
            }
            );

        return lista;
    }

c – Mayor de 3 numeros del 500 a 1500

mi duda es como hago para que el programa me reconozca solamente números del 500 al 1500, porque pongo cualquier numero y me los toma, pero necesito que solo sea del 500 al 1500

 #include <stdio.h>
 
 int main()
 {
 int N1, N2, N3;
 
 printf("Ingrese el primer numero: ");
    scanf("%d", &N1 );
    printf("ingrese el segundo numero: ");
    scanf("%d", & N2);
    printf ("Ingrese el tercer numero: ");
    scanf("%d", &N3);
    

    

    
    if (N1 > N2 && N1 > N3){
        printf ("el numero mayor es: %d ");
    }
    else if ( N2 > N1 && N2 >N3){
        printf ("el numero mayor es: %d");
        
    }
    else if ( N3 > N1 && N3 > N2){
        printf( "el mayor numero es: %d");
    }
    else if ( N1 > N3 && N1 == N2){
        printf("El numero mayor es: %d" );
    }
    else if ( N1 > N2 && N2 == N3){
        printf (" el numero mayor es: %d" );
    }
    else if ( N2 > N1 && N2 ==N3){
        printf("el mayor numero es: %d");
    }
    else{
        printf (" Los tres numeros son iguales ");
        
        
 }
 
 return 0;
}

—————————————————————————————————————————————————————————————————————————————————————————————————————————{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}}{}{}{}{}}{}{}{}{}{}}{}{}{}}{}{}{}{

Como puedo, adaptarlo para que me almacene en la memoria interna del celular

El problema de esto es que me guarda en esta ruta ay no la encuentro, aparte que hare uso de esa imagen y ruta mas adelante: /daata/user/0/com.dermaapp.juanjosue/app_com.dermaapp.juanjosue/Ecualizas.jpg

public void GuardarImagenEcualizada(){
  Bitmap imagen = ((BitmapDrawable)imgviewecualizacion.getDrawable()).getBitmap();
  String ruta = guardarImagen(getApplicationContext(), "Ecualizado", imagen);
  Toast.makeText(getApplicationContext(), ruta, Toast.LENGTH_LONG).show();
}
private String guardarImagen (Context context, String nombre, Bitmap imagen){
    ContextWrapper cw = new ContextWrapper(context);
    File dirImages = cw.getDir("com.dermaapp.juanjosue", Context.MODE_PRIVATE);
    File myPath = new File(dirImages, nombre + ".jpg");

    FileOutputStream fos = null;
    try{
        fos = new FileOutputStream(myPath);
        imagen.compress(Bitmap.CompressFormat.JPEG, 10, fos);
        fos.flush();
    }catch (FileNotFoundException ex){
        ex.printStackTrace();
    }catch (IOException ex){
        ex.printStackTrace();
    }
    return myPath.getAbsolutePath();
}

Eliminar OPTIONS del SELECT en angular 10

Estoy realizando un reporte que incluye filtros multinivel (tres niveles), por defecto carga la lista de Sedes de la universidad, al seleccionar la sede de universidad, en el siguiente select salen las FACULTADES, al seleccionar una faculta salen las ESCUELAS, selecciona la escuela y al dar click en Buscar, buscará todos los alumnos SEGUN (SEDE – FACULTAD – ESCUELA).

Hasta ahora realizo todo ese flujo.

Pero si el usuario ya cargo todo los select y cambia de SEDE (PRIMER FILTRO) el SELECT de FACULTAD debe de limpiarse y de ESCUELA debe estar sin ningun <option> cargado.

COMO ELIMINAR LOS OPTION DEL SELECT DE ESCUELA? Para hacer de nuevo la petición al back?

PD: uso nebular(es como bootstrap) omitir.

reporte-alumno.component.ts

    import { ChangeDetectionStrategy,Component, OnInit } from '@angular/core';
    import {FormBuilder, FormGroup, Validators} from '@angular/forms';
    import {ReporteAlumnoService} from '../../services/reporte-alumno.service';
    
    
    @Component({
      selector: 'app-reporte-alumno',
      changeDetection: ChangeDetectionStrategy.OnPush,
      templateUrl: './reporte-alumno.component.html',
      styleUrls: ('./reporte-alumno.component.css')
    })
    export class ReporteAlumnoComponent implements OnInit {
      
      miForm: FormGroup;
    
      sedes: any()=();
      facultades: any()=();
      escuelas: any()=();
      
      constructor(
                    private reportAlumnoService:ReporteAlumnoService,
                    private fb:FormBuilder) 
                  {
                    this.reportForm();
                  }
    
      ngOnInit(): void {
        this.reportAlumnoService.getSede().subscribe( sedes => {      
          this.sedes = sedes;    
        });
    
        
      }
    
      onFacultad(_sede):void {
        this.reportAlumnoService.getFacultad(_sede)
        .subscribe( facultades => {
          this.facultades = facultades;
        });
      }
    
      onEscuela(_facultad):void {
        this.reportAlumnoService.getSede(_facultad).subscribe( escuelas => {      
          this.escuelas = escuelas;   
        });
      }
buscar(){
        this.reportAlumnoService.getAlumnos(this.mainForm.getRawValue())
        .subscribe( resp => {
          console.log(resp);
        });
      }
    
      reportForm(){
        this.miForm = this.fb.group({
          id_sede:('',Validators.required),
          id_facultad:('',Validators.required),
          id_escuela:('',Validators.required)
        });
      }
    
  }

reporte-alumno.component.html

<nb-card accent="primary">
    <nb-card-header class="row pt-2 pl-3 pb-0 border-bottom-0">
        <div class="col-md-6 mt-3"><strong>Reporte de alumnos por EP</strong></div>    
    </nb-card-header>
    <nb-card-body>
        <form (formGroup)="miForm">
            <div class="row">
                <div class="col-lg-3 col-md-6 col-12">
                        <div class="form-group">
                            <label class="label">Sedes - UNI</label>
                            <nb-select formControlName="id_sede" (ngModelChange)="onFacultad($event)" placeholder="Escoja una sede">
                                    <nb-option *ngFor="let sede of sedes" (value)="sede.id_sede" >{{sede.nombre}}</nb-option>
                            </nb-select>
                        </div>
                </div>
                <div class="col-lg-3 col-md-6 col-12">
                        <div class="form-group">
                            <label class="label">Facultades</label>
                            <nb-select placeholder="Escoja una facultad" formControlName="id_facultad" (ngModelChange)="onEscuela($event)">
                                <nb-option *ngFor="let facultad of facultades" (value)="facultad.id_facultad" >{{facultad.nombre}}</nb-option>
                            </nb-select>
                        </div>
                </div>
                <div class="col-lg-3 col-md-6 col-12">
                        <div class="form-group">
                            <label class="label">Escuelas</label>
                            <nb-select placeholder="Escoja una escuela" formControlName="id_escuela">
                                <nb-option *ngFor="let escuela of escuelas" (value)="escuela.id_escuelas" >{{escuela.nombre}}</nb-option>
                            </nb-select>
                    </div>
            
            <div class="col-12">
                        <div class="row justify-content-center">
                            <div class="col-12 col-md-3">
                                     <button nbButton (click)="buscar()"  status="primary">Buscar</button>
                            </div>
                        </div>
                </div>
        </div>
        </form>
    </nb-card-body>
</nb-card>

python – Dada una coincidencia en un archivo que leo quiero saber en que linea del archivo se encontro la coincidencia y guardar el numero de linea

Mi código es:

import re
file = open('archivo.txt', mode ='r')
archivo = file.read()

En el archivo que leo tengo:

12345
csv1,csv2,csv3,csv4,csv5
12345678910
12345678910a
esto.es_un.mail@mail.com
esto-es_un.mail+complejo@mail.com
@dominio.com
rodrigo.jimenez@yahoo.com.mx
ruben@starbucks.com
esto_no$es_email@dominio.com
13453243
hola tambien

Mi expresión regular es para buscar correos:

exp = re.findall("(w._-){5,30}+?(w){0,10}@(w.){3,}.w{2,5}", archivo)

¿Como le hago para guardar por ejemplo el numero de linea 5 que seria mi primer coincidencia?

numpy – Imprimir la fila y columna del valor del array en una posición python

Tengo un array del que extraigo 15 elementos aleatoriamente. ¿Cómo consigo que muestre en pantalla la fila y columna de cada uno de los valores que ha extraído?

Os pongo el código:

arr=np.random.randint(100,500,(20,20))
arr4=arr.ravel()
arr5=np.random.choice(arr4,15)
print(arr5)

Consigo imprimir el array con los 15 elementos aleatorios del anterior array pero no las posiciones (fila y columna) de cada uno de esos valores.

Ejemplo si fuese un array 5×5:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20

2 (0,1)
9 (1,3)

Eso sería. Gracias.

sql – Mostrar COUNT del numero de registros coincidentes en un campo de la misma tabla

Tengo una tabla llamada articulos, entre otros campos como codigo, descripcion etc…
Esta tiene dos campos llamados PadreHijo y CodigoPadre.
Si un registro tiene el valor ‘H‘ en el campo padreHijo, nos indica que este tiene un producto padre, el cual indicamos en el codigoPadre.
Me gustaría hacer una consulta que me retornara los productos padre con el número de hijos que tiene cada uno.
Lo he intentado con un SELF JOIN, pero no hay manera.
¿Alguien me puede echar una mano?
Gracias.