Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вложенные циклы for не хотят пушить в массив правильно (https://javascript.ru/forum/misc/74961-vlozhennye-cikly-ne-khotyat-pushit-v-massiv-pravilno.html)

ArtyomZaitsev 21.08.2018 16:15

Вложенные циклы for не хотят пушить в массив правильно
 
Добрый день, решал задачку, вроде все написал верно, но почему то в массив result у меня после циклов попадает не то, что выводится в консоль.Как быть?
const data = [
  '12,Телепорт бытовой VZHIH-101 ,17,10000',
  '77, Меч световой FORCE (синий луч), 2,57000'
];

function parseData(arr, data) {
	let result = []
	let obj = {}

	for (let i in data){
		for (let j in arr) {
			obj[arr[j]] = data[i].split(',')[j].trim()
		}
		console.log(obj) // <--здесь то что надо
		result.push(obj) // <--здесь не то что надо
	}
	return result
}

let items = parseData(['id', 'name', 'amount', 'price'], data);
console.log(items);

j0hnik 21.08.2018 16:24

result.push({...obj});

j0hnik 21.08.2018 16:30

https://www.youtube.com/watch?v=4oudziatkLI (первые полторы минуты)

рони 21.08.2018 16:42

ArtyomZaitsev,
<script>
const data = [
  '12,Телепорт бытовой VZHIH-101 ,17,10000',
  '77, Меч световой FORCE (синий луч), 2,57000'
];
function parseData(arr, data) {
    return data.map(function(text) {
        return text.split(",").reduce(function(obj, str, index) {
            obj[arr[index]] = str.trim();
            return obj
        }, {})
    })
};
let items = parseData(['id', 'name', 'amount', 'price'], data);
document.write(JSON.stringify(items, null, 4));
 </script>


Часовой пояс GMT +3, время: 21:31.