JSON通过键值对循环以设置另一个键值

JSON通过键值对循环以设置另一个键值,json,loops,key-value,Json,Loops,Key Value,我对脚本和JSON非常陌生,我正在尝试循环对象中的一些键对(如下所示),以实现“如果3[x].4中的值为'BBB',则返回3[x].1中的值” 很高兴对此进行详细说明,因为我知道这可能不清楚。提前感谢您的帮助 var pID = { '3[1].1': '111111', '3[1].4': 'PPP', '3[1].5': 'PPP', '3[2].1': '222222', '3[2].4': 'MMM', '3[2].5': 'MMM', '3[3].1': '333333', '3[3]

我对脚本和JSON非常陌生,我正在尝试循环对象中的一些键对(如下所示),以实现“如果3[x].4中的值为'BBB',则返回3[x].1中的值”

很高兴对此进行详细说明,因为我知道这可能不清楚。提前感谢您的帮助

var pID = {
'3[1].1': '111111',
'3[1].4': 'PPP',
'3[1].5': 'PPP',
'3[2].1': '222222',
'3[2].4': 'MMM',
'3[2].5': 'MMM',
'3[3].1': '333333',
'3[3].4': 'BBB',
'3[3].5': 'BBB',
'3[4].1': '444444',
'3[4].4': 'XXX',
'3[4].5': 'XXX'}
因为JS对象(根据定义)是一组未排序的键值对,所以使用它来获得我们想要的结果是没有意义的

使用此解决方案,您需要以某种方式计算出
i<4
的值。不确定在这种有限的环境下最好的方法是什么。一种解决方案可以是
Math.ceil(Object.keys(pID.length/3)

var-pID={
'3[1].1': '111111',
“3[1].4':“PPP”,
“3[1].5':“PPP”,
'3[2].1': '222222',
'3[2].4':'MMM',
'3[2].5':'MMM',
'3[3].1': '333333',
'3[3].4':'BBB',
'3[3].5':'BBB',
'3[4].1': '444444',
“3[4].4':“XXX”,
“3[4].5':“XXX”,
};
for(设i=0;i<4;i++){
让currentKey=`3[${i}].4`;
if(当前键输入pID){
设currentValue=pID[currentKey];
if((currentValue=='BBB'))console.log(pID[`3[${i}].1`]);
}
}

Hey@Brendan,值是否总是按顺序排序?就14-5模式而言?是的,它们总是按那个顺序排列。
var pID = {
    '3[1].1': '111111',
    '3[1].4': 'PPP',
    '3[1].5': 'PPP',
    '3[2].1': '222222',
    '3[2].4': 'MMM',
    '3[2].5': 'MMM',
    '3[3].1': '333333',
    '3[3].4': 'BBB',
    '3[3].5': 'BBB',
    '3[4].1': '444444',
    '3[4].4': 'XXX',
    '3[4].5': 'XXX',
};

for (let i = 0; i < 4; i++) {
    let currentKey = `3[${i}].4`;
    if (currentKey in pID) {
        let currentValue = pID[currentKey];
        if ((currentValue == 'BBB')) console.log(pID[`3[${i}].1`]);
    }
}