json到特定密钥的长度

length of json upto specific key

本文关键字:密钥 json      更新时间:2023-09-26

假设这是我的变量,由.serializeArray()创建

 a={"acctType1":"individual","compare_act1":"contains","match_name_act1":"accountName","text_act1":"","acctType2":"individual","compare_act2":"contains","match_name_act2":"accountName","text_act2":"","transType1":"401kContribution","compare_trans1":"contains","match_name_trans1":"description","text_trans1":"","transType2":"401kContribution","compare_trans2":"contains","match_name_trans2":"description","text_trans2":""}

因此其长度为=16。

使用:

Object.keys(a).长度;

假设我只想知道transtype1的长度,在这种情况下应该是8,我如何找到它。

另一个例子:

b={"acctType1":"individual","compare_act1":"contains","match_name_act1":"accountName","text_act1":"","acctType2":"individual","compare_act2":"contains","match_name_act2":"accountName","text_act2":"","acctType3":"individual","compare_act3":"contains","match_name_act3":"accountName","text_act3":"","acctType4":"individual","compare_act4":"contains","match_name_act4":"accountName","text_act4":"","acctType5":"individual","compare_act5":"contains","match_name_act5":"accountName","text_act5":"","transType1":"401kContribution","compare_trans1":"contains","match_name_trans1":"description","text_trans1":"","transType2":"401kContribution","compare_trans2":"contains","match_name_trans2":"description","text_trans2":"","transType3":"401kContribution","compare_trans3":"contains","match_name_trans3":"description","text_trans3":""}

b=32 的长度

transtype1以下的长度为20

提前感谢

对象没有内在顺序,因此其中的属性没有数字位置。

您可以使用for in循环并计数,直到找到您要查找的项目,但不能保证您得到的结果与源顺序、对象周围上一个循环的顺序或其他任何内容一致。

正如@Quentin所说,您不能确定使用for in循环是否会为对象中的键提供正确的顺序,您可能应该以其他方式存储数据。如果你仍然想这样做,你可以这样做:

function lengthUpTo(obj,key){
    var count=0;
    for(var i in obj){
        if(i==key) return count;
        count++
    }
    return -1;
}
console.log(lengthUpTo(b,"transType1"))//20
console.log(lengthUpTo(b,"nonExistant"))//-1