есть ли какой-нибудь способ присвоить объекту имя?

#javascript

#javascript

Вопрос:

У меня есть запрос API на выборку, подобный этому

 fetch('http://127.0.0.1:8000/api/usersRecords')
    .then(response=>response.json())
    .then(data=>{
       console.log(data.usersRecords);
  });
  

Когда я делаю console.log(data.usersRecords)

 (3) [{…}, {…}, {…}]
 0: {"id": 1, "name": "Robbie", "kill": 12 , "knock": 1}
 1:  {"id": 2, "name": "Mohamand", "kill": 12 , "knock": 4}
 2:  {"id": 3, "name": "Jebisha", "kill": 8 , "knock": 4}
 length: 3
 __proto__: Array(0)
  

У меня есть два URL-адреса, которые необходимо получить

  fetch('http://127.0.0.1:8000/api/usersRecords')
        .then(response=>response.json())
        .then(data=>{
           console.log(data.usersRecords);
      });
 fetch('http://127.0.0.1:8000/api/usersRecord1')
        .then(response=>response.json())
        .then(data=>{
           console.log(data.usersRecords1);
      });
  

Я хочу создать массив, подобный этому, из приведенной выше выборки и использовать их для объединения двух запросов API и суммирования их данных только для уничтожения и выбивания

 var demo = {
     "key1": [{"id": 1, "name": "Robbie", "kill": 12 , "knock": 1}, 
               {"id": 2, "name": "Mohamand", "kill": 12 , "knock": 4},
               {"id": 3, "name": "Jebisha", "kill": 8 , "knock": 4}],

    "key2": [
             {"id": 1, "name": "Robbie", "kill":12  , "knock": 4}, 
             {"id": 2, "name": "Mohamand", "kill": 13 , "knock": 3},
             {"id":3, "name": "Jebisha", "kill": 5 , "knock": 1}]
 };
  
 Further, I need to merge two URLs and sum their data kill and knock. So this is code to merge and sum their kill and knock.

    var res = demo.key1.map(function(item, idx) {
    return Object.keys(item).reduce(function(obj, key) {
        if (key == 'name') {
            obj[key] = item[key];
        } else {
            obj[key] = item[key]   demo.key2[idx][key];
        }

        return obj;
    }, {});
});
  

Комментарии:

1. console.log({key1: data.userRecords})

2. @JaromandaX Спасибо, могу я задать еще один вопрос?

3. Вы можете задавать столько вопросов, сколько захотите, в stack overflow, если они соответствуют изложенным рекомендациям

4. @JaromandaX Предположим, что есть var demo ={key1: data.userRecords}; . Теперь я хочу использовать эту демонстрацию вне выборки. Как я могу?

5. в .then или с помощью async / await

Ответ №1:

 fetch('http://127.0.0.1:8000/api/usersRecords')
    .then(response=>response.json())
    .then(data=>{
       let myObject = {"key1" : data.usersRecords};
       console.log(myObject);
  });
  

Комментарии:

1. Как я могу использовать теперь переменную MyObject вне выборки?

2. @BeginnerCoder — вы не можете — он объявлен внутри last .then , и даже если вы сделаете его глобальным, он не будет заполнен до этого. затем выполняется, и теперь мы переходим к доступу к асинхронным результатам за пределами асинхронной функции, которая представляет собой совершенно другое минное поле

3. @JaromandaX Тогда моя проблема состоит в том, чтобы получить два URL-адреса, и я хочу создать один URL-ключ и другой ключ2.

4. @JaromandaX Не могли бы вы еще раз задать мой вопрос, пожалуйста?