2016-12-28 2 views
0

У меня есть функция, которая вызывает определенное свойство объекта внутри массива.Передача значений свойств эффективным способом

Каждый объект имеет несколько свойств, поэтому прямо сейчас я использую несколько функций для вызова определенных свойств. Я знаю, что это ужасно неэффективно и что это может быть намного более эффективным.

var fiftyplanets = [{ 
    "Hostname": "11 Com", 
    "Distance [pc]": 110.62, 
    "Effective Temperature [K]": 4742, 
    "Date of Last Update": "5/14/2014" 
}]; 

function findDistance(hostname) { 
    function search(am, im) { 
     if (am.Hostname === hostname) { 
      index = im; 
      return true; 
     } 
    } 

    var index; 
    if (fiftyplanets.some(search)) { 
     return fiftyplanets[index]['Distance [pc]']; 
    } 
} 

function findTemp(hostname) { 
    function search(am, im) { 
     if (am.Hostname === hostname) { 
      index = im; 
      return true; 
     } 
    } 

    var index; 
    if (fiftyplanets.some(search)) { 
     return fiftyplanets[index]['Effective Temperature [K]']; 
    } 
} 

var name = value; 
var resullt = fiftyplanets.indexOf(name); 
var dist = findDistance(name); 
var temp = findTemp(name); 

Как я могу эффективно записать вышеприведенную функцию, чтобы я искал конкретные свойства, используя только одну функцию?

+0

Если нет конкретной ошибки или вопрос у Вас есть я рекомендовал бы переместить свой вопрос [Обзор] Код (http://codereview.stackexchange.com/). – chazsolo

+0

Я не знал, что такой сайт существует. Есть ли способ миграции или что-то, что может передать этот вопрос на этот сайт? Или мне нужно удалить этот файл и скопировать/вставить его там? – TheNuttyStudent

+0

[Здесь есть ответ] (http://meta.stackexchange.com/questions/85017/how-do-i-move-my-own-question-to-another-stack-exchange-site), который имеет некоторые хорошие Информация. Я буду отмечать внимание модератора, чтобы увидеть, можно ли его перемещать. – chazsolo

ответ

2

Я не уверен, что это то, что вы ищете, но оно избавляется от повторного использования кода и помещает поиск в одну функциональность.

var fiftyplanets = [{ 
 
    "Hostname": "11 Com", 
 
    "DistancePc": 110.62, 
 
    "effectiveTemperatureK": 4742, 
 
    "dateOfLastUpdate": "5/14/2014" 
 
}]; 
 

 
function getInfo(info, hostname) { 
 
    function search(am, im) { 
 
     if (am.Hostname === hostname) { 
 
      index = im; 
 
      return true; 
 
     } 
 
    } 
 

 
    var index; 
 
    if (fiftyplanets.some(search)) { 
 
     return fiftyplanets[index][info]; 
 
    } 
 
} 
 

 
var name = value; 
 
var resullt = fiftyplanets.indexOf(name); 
 
var dist = getInfo('DistancePc', name);

Смежные вопросы