Javascript json到特定密钥的长度
假设这是我的变量,由.serializeArray()创建 所以这个的长度是=16 使用: 对象。键(a)。长度 假设我只想知道最长Javascript json到特定密钥的长度,javascript,json,Javascript,Json,假设这是我的变量,由.serializeArray()创建 所以这个的长度是=16 使用: 对象。键(a)。长度 假设我只想知道最长transtype1的长度,在这种情况下应该是8。我如何找到它 另一个例子: b={"acctType1":"individual","compare_act1":"contains","match_name_act1":"accountName","text_act1":"","acctType2":"individual","compare_act2":"con
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
提前感谢对象没有内在顺序,因此它们中的属性没有数字位置
您可以使用
进行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
我需要迭代这个对象,但想以不同的方式迭代acctType和transType,那么我该如何实现呢?使用数组,而不是重复末尾有不同数字的键名。
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