Проблема в том что название (не массив!) массива передается в динамическую функцию и нужно из этого массива прочитать значения. Функция примерно такая:
var getFromTable = new Function ('index', 'arr', 'property', 'return arr[index][property]');
Вызов выглядит так:
var c = getFromTable (1, 'materials', 'width');
Ожидаемо, что все это не работает, но как сделать чтоб сработало?
ну например так...
var materials = [
{width: 10}, {width: 20}, {width: 30}
]
function getFromTable(i, arr, prop) {
if (!Array.isArray(arr)) throw "second arg must be arr";
if (!arr[i]) throw "no index in arr";
if (!arr[i][prop]) throw "no prop in index arr";;
return arr[i][prop];
}
console.log(getFromTable(2, materials, 'width'));
Если же вам необходимо передавать название массива как строку, что меня очень смущает и я не могу представить себе прикладную задачу для решения которой это необходимо делать, то вам может придти на помощь eval() но помните что это очень плохая практика.
var materials = [{width: 10}, {width: 20}]
function getFromTable(i, arr, property) {
var execCmd = arr + '[' + i + ']' + '["' + property + '"]';
return eval(execCmd);
}
console.log(getFromTable(1, 'materials', 'width'));
Суть в следующем : чтобы не испорльзовать eval сделаем 1н обьект, который будет хранить все таблицы, названия таблиц будут названиями свойств обьекта, а значениями етих свойств будут масивы/данные етих таблиц, в таком случаи данные легко достать с общего масива и легко добавить новые или удалить старые
Пример такого кода :
'use strict';
var tabels = {
tab1 : [
{prop1 : "p1",
prop12 : "p12"},
{prop2 : "p2"},
{prop3 : "p3"}
],
tab2 : [
{prop1 : "p1"},
{prop2 : "p2"},
{prop3 : "p3"}
]
};
function getFromTable(index, arr, property){
return tabels[arr][index][property];
};
console.log(getFromTable(0,'tab1','prop12'));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь изучить ООП javascript на реальный примерах и столкнулся с проблемойЕсть такой код:
Добрый день! У меня есть скрипт менюНа пк меню работает при наведении мышкой
You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection:
Немогу найти примера как работать с Google Cloud MySQLЯ думаю все просто - через API, но немогу понять как? Может кто-то делал и покажет пример с основными...