Показать сообщение отдельно
  #1 (permalink)  
Старый 26.04.2022, 17:10
Аспирант
Отправить личное сообщение для Judgin Посмотреть профиль Найти все сообщения от Judgin
 
Регистрация: 31.05.2021
Сообщений: 32

При перезагрузке страницы меняется порядок объектов в массиве
Если перезагружать страницу и смотреть значения ключа title (массив movieObjArr) в консоли. То названия меняются. Почему эту происходит?

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	<script>
		const secondPage = "page|279ca2067846c0060304271a0662e878f4f4011301eebfee0a|596563";
		Promise.all([
			fetch("https://ru.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9A%D0%B8%D0%BD%D0%BE%D0%BA%D0%BE%D0%BC%D0%B5%D0%B4%D0%B8%D0%B8%20%D0%A1%D0%A1%D0%A1%D0%A0&cmlimit=500&format=json&prop=iwlinks&origin=*"),
			fetch(`https://ru.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9A%D0%B8%D0%BD%D0%BE%D0%BA%D0%BE%D0%BC%D0%B5%D0%B4%D0%B8%D0%B8%20%D0%A1%D0%A1%D0%A1%D0%A0&cmlimit=500&format=json&prop=iwlinks&origin=*&cmcontinue=${secondPage}`)
		])
			.then (function(responses){ 
				return Promise.all(responses.map(function(response) {
  					return response.json();
  	
			}));

			}).then (function(data) {
  				let fObject = data[0].query.categorymembers;
				let sObject = data[1].query.categorymembers;
  				let fullObject =  fObject.concat(sObject);
  
			for(j = 0; j < fullObject.length; j++) {
  				delete fullObject[j].pageid;
  				delete fullObject[j].ns;
			}

		//CONVERT STRUCTURE OF OBJECT
		arr = fullObject.map(function(obj) {
  			return obj.title;
		});
		const groupNames = arr => {
   			const map = arr.reduce((acc, val) => {
     			let char = val.charAt(0).toUpperCase();
      			acc[char] = [].concat((acc[char] || []), val);
      			return acc;
		}, {});
		const res = Object.keys(map).map(el => ({
    		letter: el,
    		names: map[el]
		}));
		return res;
		};

		//EDIT ARRAY
		arrEdited = groupNames(arr);
		let namesArrEdited = arrEdited[12].names;
		console.log(namesArrEdited);
		namesArrEdited.splice(41, 9);
		namesArrEdited.push('Кыш и два портфеля');
		arrEdited[0].names.push('4:0 в пользу Танечки');
		arrEdited.splice(1, 1);
		arrEdited.splice(19, 1);
		arrEdited.splice(30, 1);
		let newArr = arr;
		let movieObjArr = [];
		Promise.all(
  			newArr.map(title => {
    			return new Promise((resolve) => {
      				fetch(`https://ru.wikipedia.org/w/api.php?action=query&prop=imageinfo&titles=${title}&format=json&iiprop=url&generator=images&origin=*`)
       					.then(response => {
          					return new Promise(() => {
            					response.json()
              						.then(movieObj => {
              							movieObjArr.push(movieObj);
              							console.log(movieObjArr);
              							// xy = all;
              	 						resolve();
              	 
             					})
          					})
        				})
     			})
  			})

		)

		.then(() => {
		})
                })
	</script>
</body>
</html>
Ответить с цитированием