繁体   English   中英

Jquery,在嵌套数组上使用“inarray”来查找特定值的索引?

[英]Jquery, using “inarray” on a nested array to find a specific value's index?

我正在努力解决这个问题,我仍然是javascript的新手,我正在尝试jquery $ .inarray函数,因为我需要能够在数组中找到一个值,以便我可以从同一个数组“line”返回其他值,比如它的ID。

当我尝试使用jquery的inarray函数时,就像这样,我只是回到-1,说当我知道值存在时它不存在,嵌套在数组中..我不知道如何处理这个我可以搜索一个值,任何建议都非常感谢。

valuereturn = $.inArray("search_for_value", jsonarray) ;
alert (valuereturn)

编辑2:

这是我从cakephp回复JSON的结果:

    {"getdata":[{"Uiemail":{"uiemail_id":"2","divid":"upd1","width":"200","height":"200","leftpos":"122","toppos":"122","cssgroup":"1","colortop":"","colorbottom":"","colorborder":"","borderwidth":"","zindex":""}},
{"Uiemail":{"uiemail_id":"3","divid":"upd2","width":"200","height":"200","leftpos":"333","toppos":"444","cssgroup":"1","colortop":"","colorbottom":"","colorborder":"","borderwidth":"","zindex":""}},
{"Uiemail":{"uiemail_id":"4","divid":"upd3","width":"200","height":"200","leftpos":"555","toppos":"466","cssgroup":"1","colortop":"","colorbottom":"","colorborder":"","borderwidth":"","zindex":""}}]} 

编辑:

另外,这是输出:

alert(typeof jsonarray+'\n'+jsonarray.length)
output= "object 3 "

我也尝试了这个,但它没有给出值并在我的页面上出错:

alert(jsonararray)

我仍然不完全确定你在问什么,所以这里有一些假设和一个快速的解决方案。

  1. 你正在寻找那个blob数据中的uiemail_id
  2. blob可以任意深入
  3. 如果找到一个,你想在相同的“线”中得到divid的值
  4. 找到的第一个是赢家

现在抛出一点递归函数:

function deepsearch ( blob, val ) { 
    var result = false;
    for( var item in blob ) {
        if( typeof blob[item] === 'object' ) {
            result = deepsearch( blob[item], val );
            if( result != false ) return result;
        } else if( blob[item] == val && item == 'uiemail_id' ) {
            // found item, blob = obj in which found
            result = blob.divid; // the divid from this "line"
            break; // assume first found wins            
        }
    }
    return result;
}      

填写您的确切JSON:

var arr = {"getdata":[{"Uiemail":...

现在,我们可以找一个uiemail_id4 ,并获得相应的dividupd3

deepsearch( arr, '4'); // returns upd3
deepsearch( arr, '3'); // returns upd2

这可能是脆弱的,当然可以改进,但也许它会给你一个攻击角度。

好吧,现在我已经决定使用一种在javascript中展平数组的方法并预处理数据,因为我无法弄清楚如何在javascript中进行...我发现了这个:

如何在PHP中将多维数组“扁平化”为简单数组?

这应该让我继续过去这个问题但我感兴趣,如果有人知道如何完成我想直接在javascript(在嵌套数组内搜索)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM