цикл с условия
Доброго времени суток , есть масив , и мне надо выводил только один элемент не повторяющий тоись
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, время: 20:17. |