JavaScript. Ключ словаря не является строкой?

Простой вопрос. Имея следующий фрагмент кода:

  function addMarker(data) {
    var types = {'meet': 380 + ',' + 95, 'vegetable': 285 + ',' + 0};
    var selection = data.type;

    console.info(types["meet"]);
    console.info(types[selection]);
    console.info(selection);

и получив эти результаты в консоли:

380,95
undefined
Meet

Во втором случае мне понадобится еще 380,95. Предполагается, что selection - это строка, исходящая от объекта data. Как-то при использовании этой строки в качестве словарного ключа она не работает. Как мне тогда получить разные значения от types таким динамическим способом?

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

Хмель! Вы правы, спасибо за помощь. Я не обратил внимания на заглавную М, извините, что беспокою вас этим.

J. David Moreno Hernández 09.06.2018 17:34
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
1 389
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Javascript - это с учетом регистра. Объект имеет свойство meet, тогда как значение Выбор - Meet. Следовательно, вам нужно будет обновить свой код следующим образом:

console.info(types[selection.toLowerCase()]);

Для справки: String.toLowerCase ()

Пожалуйста, проверьте, если

data.type === "Meet" // true

Надо «встретиться».

Кстати. это мясо полбы, а не встретить.

Просто быть чистым

addMarker({'type':'meet'}) // would produce correct result 
addMarker({'type':'Meet'}) // would produce result  result you see 

Чтобы исправить это, вы можете использовать строку нижнего регистра, как предоставлено Nikhil

 function addMarker(data) {
        var types = {'meet': 380 + ',' + 95, 'vegetable': 285 + ',' + 0};
        var selection = data.type;
       selection = selection.toLowerCase();

        console.info(types["meet"]);
        console.info(types[selection]);
        console.info(selection);
}

Или просто позвоните правильно

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