javascript - 以有效的方式传递属性(property)值(value)

标签 javascript

我这里有一个函数,它从数组内的对象调用特定属性。

每个对象都有多个属性,所以现在我使用多个函数来调用特定属性,如下所示。我知道这效率极低,而且效率还可以高得多。

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/

相关文章:

javascript - 为什么 IE8 中不显示 Jquery 日期选择器图标?

javascript - React Native - 从作为 prop 传递的函数调用方法

javascript - 如何使用 jquery 检查浏览器中安装的附加组件?

javascript - 如何从谷歌地图API获取纬度和经度的地址?

javascript - 运动气泡图

javascript - Graphql 解析器未返回任何数据

javascript - Node.js 或 Express.js 是否是像 PHP 一样的服务器端语言

javascript - IE 错误 'var' 未定义

javascript - 如何从API加载数据?

javascript - 使用 HTML5 canvas 检测图像透明度存在误报