我有一个名为allInvalidFields
的对象,其中列出标识符下的无效字段,例如_0
或_3
对象可能看起来像这样
allInvalidFields = {
"_0" : {
0: input.foo,
1: select.la
}
"_1" : {
0: input.foofoo,
1: select.lala
}
}
但同样地,它不能将_0
作为第一个键,并且看起来像这样:
allInvalidFields = {
"_1" : {
0: input.alice,
1: select.bob
}
"_3" : {
0: input.foo
}
}
如何从列表中的第一个对象中获取第一个值?因此,在上面的示例中,它将是input.foo
或input.alice
,具体取决于搜索的数据集。
答案 0 :(得分:1)
推断密钥是按数字顺序排列的,前面加上“_”。
根据假设:
function first(obj,n){
let smallest = Infinity;
for(i in obj){
console.log(i);
let val='';
if (i.toString()[0]=='_'){
val = parseInt(i.toString().substring(1));
}else{
val = i;
}
if( val < smallest ){
smallest = val;
}
}
if(n>0){
return first(obj["_"+smallest],n-1);
}
return obj[smallest];
}
first({"_0" : {
0: "input.foo",
1: "select.la"
},
"_1" : {
0: "input.foofoo",
1: "select.lala"
}},1); // input.foo
答案 1 :(得分:-1)
你需要这样的东西。
var allInvalidFields = {
"_0": {
"0": "input.foo",
"1": "select.la"
},
"_1": {
"0": "input.foofoo",
"1": "select.lala"
}
};
var firstInput = Object.keys(allInvalidFields)[0];
console.log(allInvalidFields[firstInput][0]);
答案 2 :(得分:-1)
Object.values(allInvalidFields)[0][0];
取第一个属性对象的第一个值。
小注意:拥有像_1这样的键是糟糕的风格......
短版本的程序回答:
allInvalidFields["_"+Object.keys(allInvalidFields).map(el=>el=+el.replace("_","")).sort()[0]][0]