我这里有一个函数,可以从数组内的对象中调用特定属性。
每个对象都有多个属性,所以现在我正在使用多个函数来像这样调用特定的属性。我知道这效率极低,而且效率可能更高。
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);
如何有效地编写上述函数,以便仅使用一个函数来查找特定属性?
我不确定这是否是您要查找的内容,但是它摆脱了重复使用的代码,并将搜索整合到一个函数中。
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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句