Javascript 如果我只知道其中一个项目的值';谁的财产?
我有以下JavaScript对象: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": [{ "tes
{
"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";
您需要使用for
循环遍历数组,直到找到要查找的项目。您可以创建一个函数来执行此操作:
function getLinesByLineID( lines, id ) {
var results = [];
for( var i = 0, j = lines.length; i < j; i++ ) {
if( lines[ i ].lineid === id ) {
results.push( lines[ i ] );
}
}
return ( results.length > 0 ) ? results : false;
}
函数getLinesByLineID(行,id){
var结果=[];
对于(变量i=0,j=lines.length;i0)?结果:false;
}
然后可以这样调用它:var lines=getLinesByID(json.page[0].line,22)
您必须搜索
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);
函数查找数组中的数组(arr、名称、值){
对于(var i=0,len=arr.length;ibriliant感谢发送可搜索值name的好方法,太喜欢了:-)非常感谢:-)非常感谢:-)很好的一个添加了一个点,但是lauri在键入lol方面稍微快了一点非常感谢