我这里有一个函数,它从数组内的对象调用特定属性。
每个对象都有多个属性,所以现在我使用多个函数来调用特定属性,如下所示。我知道这效率极低,而且效率还可以高得多。
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);
关于javascript - 以有效的方式传递属性(property)值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41367129/