Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

262
Visualizações
Eliminar duplicados de ciertos valores de columna Javascript 2D array

Tengo una matriz, por ejemplo:

 var array = [ [ 1, "Hello", "red", 0, "yes"], [ 2, "Hello", "red", 1, "no"], [ 3, "Hello", "blue", 4, "no"], [ 4, "Sunshine", "yellow", 5, "yes"], [ 5, "Hello", "red", 6, "yes"],.....]

Ahora quiero eliminar la matriz en función de varias columnas, digamos (2,3,5) : así que, en función de 3 columnas, quiero eliminar los duplicados y mantener la primera aparición. mi resultado debería ser como:

 array = [[ 1, "Hello", "red", 0, "yes"], [ 2, "Hello", "red", 1, "no"], [ 3, "Hello", "blue", 4, "no"], [ 4, "Sunshine", "yellow", 5, "yes"],....]

ves hello, red & yes coinciden. en la columna 2,3,5 , por lo que solo se mantuvo la primera aparición, se eliminó el resto. ahora no puedo entender cómo resolver este problema complejo.

 function pullgm() { // ss = SpreadsheetApp.getActiveSpreadsheet() // sh2 = ss.getSheetByName("GP") // sh3 = ss.getSheetByName("GM") // var lr2 = sh2.getLastRow() // var lc2 = sh2.getLastColumn() // var lr3 = sh3.getLastRow() // var lc3 = sh3.getLastColumn() var array = [ [1, 'Hello', 'red', 0, 'yes'], [2, 'Hello', 'red', 1, 'no'], [3, 'Hello', 'blue', 4, 'no'], [4, 'Sunshine', 'yellow', 5, 'yes'], [5, 'Hello', 'red', 6, 'yes'], ]; var hash = Object.create(null), length = array.length, result = [], element, i, key, ref; for (i = 0; i < length; i++) { element = array[i]; key = array[i][0] + '|' + array[i][1] + '|' + array[i][6]; ref = hash[key]; if (ref) { continue; } hash[key] = element.slice(); result.push(hash[key]); } console.log(array); } pullgm();

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Podría tomar un Set con una función que construye una clave de los índices deseados.

Después de verificar el conjunto con la clave combinada, agregue la clave y devuelva el conjunto de datos real o descarte la matriz real.

 const uniqueBy = (fn, s = new Set) => o => (k => !s.has(k) && s.add(k))(fn(o)), key = keys => o => keys.map(k => o[k]).join('|'), data = [[1, "Hello", "red", 0, "yes"], [2, "Hello", "red", 1, "no"], [3, "Hello", "blue", 4, "no"], [4, "Sunshine", "yellow", 5, "yes"], [5, "Hello", "red", 6, "yes"]], result = data.filter(uniqueBy(key([1, 2, 4]))); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda