У меня есть массив как это:точка Javascript свойства объекта
elements = new Array(
{opinions: 'p31/php/endpoint.php?get=opinions'}, // function to call and API endpoint, php/endpoint.php
{top3positive: 'p31/php/endpoint.php?get=top3positive'}, // function to call andAPI endpoint, php/endpoint.php
{top3negative: 'p31/php/endpoint.php?get=top3negative'} // function to call andAPI endpoint, php/endpoint.php
);
Я пытаюсь получить значение. Простая вещь будет, например: elements[0].opinions
будет правильно возвращаться p31/php/endpoint.php?get=opinions
Дело в том, что мне нужно получить такую же информацию, не зная непосредственно значения.
Так я делаю следующее:
function getEndPoint(element) {
for (index in elements) {
if (Object.getOwnPropertyNames(elements[index]) == element) {
console.log(eval(elements[index]. element));
}
}
}
element
, например, стоит за мнения. Когда я делаю console.log(eval(elements[index]. element));
, он неверно возвращает p31/php/endpoint.php?get=opinions
, но возвращает undefined. Я также попытался использовать eval()
, чтобы оценить element
от строки до исполняемого кода, но ничего.
Что я делаю неправильно? Благодаря
Избегайте использования 'eval', если это возможно. – SeinopSys
Это не очень хорошо разработанный способ хранения этих URL-адресов. Можете ли вы его изменить? Кроме того, вы никогда не должны использовать цикл 'for..in' на массивах ... используйте простой цикл' for'. – kapa