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

dav*_*der 3 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": []
    }]
}
Run Code Online (Sandbox Code Playgroud)

我可以用像这样的行做大多数事情 measurements.page[0].line[0].lineid;

但我真正坚持的是当我想编辑一个特定的行,但我只有lineid值(例如22)而不是数组中的行号:

measurements.page[0].line[WHAT DO I PUT HERE].test = "new changed value";
Run Code Online (Sandbox Code Playgroud)

Lau*_*uri 5

你必须搜索

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);
Run Code Online (Sandbox Code Playgroud)