цикл с условия
Доброго времени суток , есть масив , и мне надо выводил только один элемент не повторяющий тоись
audi , bmv , mersя не знаю как сделать вот то что у меня вишло , не знаю может както через if() <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <select id="car" onchange="filterManeger(event)"> </select> <script> let arr = [ {car: 'audi' , color: 'red'}, {car: 'audi' , color: 'black'}, {car: 'bmv' , color: 'black'}, {car: 'bmv' , color: 'red'}, {car: 'mers' , color: 'black'}, ] document.getElementById('car').innerHTML = ''; let sbody = ''; arr.forEach(car => { sbody += ` <option value="${car.car}">${car.car}</option> ` }); document.getElementById('car').innerHTML = sbody; console.log(arr); </script> </body> </html> |
const uniCar = [...new Set(arr.map(item => item.car))];
console.log(uniCar); //["audi", "bmv", "mers"] |
misha.korolcov,
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <select id="car" onchange="filterManeger(event)"> </select> <script> let arr = [ {car: 'audi' , color: 'red'}, {car: 'audi' , color: 'black'}, {car: 'bmv' , color: 'black'}, {car: 'bmv' , color: 'red'}, {car: 'mers' , color: 'black'}, ] const select = document.getElementById('car'); select.options.length = 0; arr.forEach(({car}) => { ((select.value = car) == select.value) || select.append(new Option(car, car)) }); </script> </body> </html> |
misha.korolcov, если ты собрался формировать строку, тогда удобнее использовать не forEach(), а reduce()...
let arr = [ {car: 'audi' , color: 'red'}, {car: 'audi' , color: 'black'}, {car: 'bmv' , color: 'black'}, {car: 'bmv' , color: 'red'}, {car: 'mers' , color: 'black'}, ] let sbody = arr.reduce(function(Val,Obj){ return Val+(function(Name){ if (Val.indexOf(Name)!=-1) { return '';} return '<option value="'+Name+'">'+Name+'</option>'; })(Obj.car); },''); alert(sbody); |
Часовой пояс GMT +3, время: 17:14. |