javascript loop through list items and return the results in an array
javascript
Solution
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 ) );
}
FIDDLE
To not get duplicated values you can do
for (var i=0; i < listItem.length; i++) {
var num = parseInt( listItem[i].innerHTML, 10 );
if (newNums.indexOf(num) === -1) {
newNums.push( num );
}
}
FIDDLE
And to also get an array with the values that appear more than once
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 );
}
}
FIDDLE
`Array.indexOf` might not be supported in all browsers, but there's a polyfill over at MDN
Problem
I have been trying to loop through an unordered list of numbers with javascript. The function should store all of the numbers in an array so I can find which numbers are duplicates. Any help would be appreciated. So far I have: ``` <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> ``` and a start on the 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(); })(); ``` what am I missing?