javascript repite los elementos de la list y devuelve los resultados en una matriz

He estado intentando recorrer una list desorderada de numbers con javascript. La function debe almacenar todos los numbers en una matriz para que pueda encontrar qué numbers son duplicates. Cualquier ayuda sería apreciada. Hasta ahora tengo:

<html> <head> <title></title> </head> <body> <ul id="ul"> <li>6</li> <li>3</li> <li>1</li> <li>4</li> <li>7</li> <li>4</li> <li>2</li> <li>8</li> <li>9</li> <li>2</li> </ul> </body> </html> 

y un comienzo en javascript:

 (function(){ var nums = document.getElementById("ul"); var listItem = nums.getElementsByTagName("li"); var newNums = ""; var dups = function(){ for (var i = 0; i < listItem.length; i++){ } }; dups(); })(); 

¿Qué me estoy perdiendo?

One Solution collect form web for “javascript repite los elementos de la list y devuelve los resultados en una matriz”

 var nums = document.getElementById("ul"); var listItem = nums.getElementsByTagName("li"); var newNums = []; for (var i=0; i < listItem.length; i++) { newNums.push( parseInt( listItem[i].innerHTML, 10 ) ); } 

VIOLÍN

Para no get valores duplicates puede hacer

 for (var i=0; i < listItem.length; i++) { var num = parseInt( listItem[i].innerHTML, 10 ); if (newNums.indexOf(num) === -1) { newNums.push( num ); } } 

VIOLÍN

Y también para get una matriz con los valores que aparecen más de una vez

 var newNums = [], duplicate = []; for (var i=0; i < listItem.length; i++) { var num = parseInt( listItem[i].innerHTML, 10 ); if (newNums.indexOf(num) === -1) { newNums.push( num ); }else{ duplicate.push( num ); } } 

VIOLÍN

Array.indexOf podría no ser compatible con todos los browseres, pero hay un polyfill en MDN

Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.