javascript - 当我只知道项目的一个属性的值时,如何从 JavaScript 数组中选择一个项目?

标签 javascript

我有以下 JavaScript 对象:

{
    "DPI": "66.8213457076566",
    "width": "563.341067",
    "editable": "True",
    "pricecat": "6",
    "numpages": "2",
    "height": "400",
    "page": [{
        "filename": "999_9_1.jpg",
        "line": [{
            "test": "test 1",
            lineid: 22
        },
        {
            "test": "test 2",
            lineid: 22
        },
        {
            "test": "test 3",
            lineid: 22
        },
        {
            "test": "test 4",
            lineid: 22
        },
        {
            "test": "blank",
            lineid: 22
        }]
    },
    {
        "filename": "999_9_2.jpg",
        "line": []
    }]
}

我可以用 measurements.page[0].line[0].lineid; 这样的行来做大部分事情

但我真正坚持的是当我想编辑特定行但我只有可用的 lineid 值(例如 22)而不是该行数组中的数字:

measurements.page[0].line[WHAT DO I PUT HERE].test = "new changed value";

最佳答案

你必须搜索

function find_in_array(arr, name, value) {
    for (var i = 0, len = arr.length; i<len; i++) {
        if (name in arr[i] && arr[i][name] == value) return i;
    };
    return false;
}

var id = find_in_array(measurements.page[0].line, 'lineid', 22);

关于javascript - 当我只知道项目的一个属性的值时,如何从 JavaScript 数组中选择一个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2713599/

相关文章:

javascript - 在 Google Chrome 中,Google Docs 可以通过 javascript 控制页眉和页脚。有谁知道这是如何实现的?

javascript - 你能帮我设计 React Native 应用程序的布局吗?

javascript - 使用 bind 来利用另一个 Javascript 类的方法

javascript - SoundCloud SDK 在生产环境中不接收 token 回调,仅在 Safari 中

javascript - 如何获取推文的年龄?

javascript - ReactJS 文件结构

javascript - 如何将字符串转换为 JavaScript 日期对象?

javascript - 使用 jQuery 使 session 在长时间运行的过程中保持事件状态

javascript - JS Uint16Array 不会引发任何超出范围的异常

javascript - 如何使用 JavaScript 控制台对现有 DOM 元素进行排序?