Как консолидировать данные объекта журнала в javascript?

У меня возникли проблемы с возвратом свойств моего объекта. Я продолжаю получать неопределенную ошибку, когда запускаю следующий код. Я пытаюсь указать ранг каждой отдельной карты. Я подумал, что лучше всего для них будет иметь свой собственный объект. Однако, когда я веду консольный журнал, я не могу вывести свойства. Любой совет?

  • В первом console.log мне нужно вернуть ранг #.

    //Deck with ranks
   var arrClubs = [
    {"img": '2_of_clubs.png',"rank": 1},{"img": '3_of_clubs.png',"rank": 2},{"img": '4_of_clubs.png',"rank": 3},{"img": '5_of_clubs.png',"rank": 4},{"img": '6_of_clubs.png',"rank": 5},{"img": '7_of_clubs.png',"rank": 6},{"img": '8_of_clubs.png',"rank": 7},{"img": '9_of_clubs.png',"rank": 8},{"img": '10_of_clubs.png',"rank": 9},{"img": 'jack_of_clubs.png',"rank": 10},{"img": 'queen_of_clubs.png',"rank": 11},{"img": 'king_of_clubs.png',"rank": 12},{"img": 'ace_of_clubs.png',"rank": 13},
 
   ]
     var suitType = Math.ceil(Math.random() * 1)
       var card = Math.floor(Math.random() * 12)
           var selectedCard //storing selected card
           
      if (suitType == "1"){   //Clubs
          
           console.log(JSON.stringify([arrClubs[rank]]))
           //selectedCard = arrClubs[card]
   
       }else if(suitType == "2"){ //Diamonds

          // console.log(arrDiamonds[card])
           //selectedCard = arrDiamonds[card]
   
       } else if (suitType == "3"){ //Hearts
   
          // console.log(arrHearts[card])
           //selectedCard = arrHearts[card]
        
       } else { //Spades
          
          // console.log(arrSpades[card])
          // selectedCard = arrSpades[card]
        
       }
              document.getElementById('p1Card').src = "./images/cards/" + selectedCard
 <img src="./images/cards/black_joker.png" height="300px" id="p1Card">
    <img src="./images/cards/red_joker.png" height="300px" id="p2Card">

Прежде всего, сделайте общее правило, чтобы в основном использовать "===" и преобразовывать другие значения в тот же тип или проверять его тип и все, чтобы избежать неожиданностей. Кроме того, я вижу печать объекта во фрагменте

innocent 19.11.2022 18:01

Мне нужно свойство в объекте. Это возвращается как неопределенное, когда я делаю arrClubs.rank

Alexis 19.11.2022 18:02

ты просто хочешь это console.log(JSON.stringify([arrClubs[card].rank]))

vinesh_dodiya 19.11.2022 18:05

Хорошо. Вы вводите значение в строку, чтобы оно действовало как строка. Удалите строку, а также вам нужно перебрать массив или получить доступ к определенному объекту из массива объектов, а затем получить доступ к ним. например: arrClubs[0].rank

innocent 19.11.2022 18:06
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
учебник по Javascript
учебник по Javascript
JavaScript - это язык программирования, который обычно используется для добавления интерактивности и других динамических функций на веб-сайты. Он...
Как использовать d3.js для рисования 2D SVG-элементов в приложении Angular?
Как использовать d3.js для рисования 2D SVG-элементов в приложении Angular?
D3.js - это обширная библиотека, используемая для привязки произвольных данных к объектной модели документа (DOM). Мы разберем основные варианты...
Освоение принципов SOLID в JavaScript: Пошаговое руководство
Освоение принципов SOLID в JavaScript: Пошаговое руководство
Принцип единой ответственности (SRP): класс должен иметь только одну причину для изменения. Другими словами, у него должна быть только одна...
JavaScript - For Loop
JavaScript - For Loop
Наиболее используемая компактная форма оператора цикла.
Неделя 1 - Карточки с временной шкалой
Неделя 1 - Карточки с временной шкалой
Поскольку это была первая неделя, я решил начать с простого. Предполагалось, что у меня будет временная шкала с несколькими карточками, которые можно...
0
4
50
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Нет необходимости вводить массив в строки, вы можете просто зарегистрировать его:

var arrClubs = [
    {"img": '2_of_clubs.png',"rank": 1},{"img": '3_of_clubs.png',"rank": 2},{"img": '4_of_clubs.png',"rank": 3},{"img": '5_of_clubs.png',"rank": 4},{"img": '6_of_clubs.png',"rank": 5},{"img": '7_of_clubs.png',"rank": 6},{"img": '8_of_clubs.png',"rank": 7},{"img": '9_of_clubs.png',"rank": 8},{"img": '10_of_clubs.png',"rank": 9},{"img": 'jack_of_clubs.png',"rank": 10},{"img": 'queen_of_clubs.png',"rank": 11},{"img": 'king_of_clubs.png',"rank": 12},{"img": 'ace_of_clubs.png',"rank": 13}
]

console.log(arrClubs)

Или еще лучше, бросьте его в таблицу:

console.table(arrClubs)
Ответ принят как подходящий

Здесь вы можете попробовать эту логику:

var arrClubs = [
    {"img": '2_of_clubs.png',"rank": 1},{"img": '3_of_clubs.png',"rank": 2},
 ];
 
 console.log(arrClubs[0].rank)

Нет необходимости использовать JSON.stringify для журналов консоли.

Если вы хотите зарегистрировать весь массив, используйте: console.log(arrClubs).

Чтобы зарегистрировать только первое значение ранга: console.log(arrClubs[0].rank).

Чтобы зарегистрировать все ранги, вы можете создать массив с этими значениями следующим образом:

const ranks = arrClubs.map(item => item.rank);
console.log(ranks);

Другие вопросы по теме