У меня странный глюк. У меня есть немного кода, в котором я просматриваю массив массивов, беру кучу названий городов и объединяю их все вместе. Мне нужно удалить дубликаты из готового списка. Это должно быть довольно просто. Используйте подсчет, чтобы выяснить, в каком городе есть более одного экземпляра, а затем соедините их. Мой возвращенный массив не выходит правильно, и я не уверен, почему. Может ли кто-нибудь определить, что я делаю неправильно?
const input = [
{
name: "ACH2000",
year: 2005,
cities: ['Chicago', 'New York', 'Ames', 'Columbus'],
ages: [12, 32, 2, 51]
},
{
name: "FXG3000",
year: 2008,
cities: ['Chicago', 'Joliet', 'Plymouth', 'Dallas'],
ages: [12, 32, 2, 51]
},
{
name: "GTG1234",
year: 2012,
cities: ['Indy', 'Tampa', 'Houston', 'Dallas'],
ages: [12, 32, 2, 51]
}
];
function getUniqueCities(data){
let citiesInArray = data.map(function(item){ return item.cities });
let concatCities = [].concat.apply([], citiesInArray);
let count = {};
for(let i = 0; i< concatCities.length; i++) {
let num = concatCities[i];
count[num] = count[num] ? count[num]+1 : 1;
if(count[num] > 1){
console.log('bad',num);
concatCities.splice(num, 1);
} else {
console.log('good',num);
}
}
console.log(count);
console.log(concatCities);
}
getUniqueCities(input);
.splicing()
потеряли... - person nnnnnn   schedule 21.02.2017console.log(concatCities)
дает уникальные города? - person Amresh Venugopal   schedule 21.02.2017