我有一个object.array数组就是这样。
animal = [{"cow":{"leg":4,"eye":2}},{"monkey":{"leg":2,"eye":2}}]
这里的第一把钥匙像牛和猴子一样动感
所以我的问题是,如果第一个键是动态的,我该如何访问键腿
答案 0 :(得分:2)
如果您确定数组中的每个对象只有1个属性(这是动物的类型),则可以执行以下操作。
animals = [{"cow":{"leg":4,"eye":2}},{"monkey":{"leg":2,"eye":2}}];
for (let animal of animals) {
let propName = Object.keys(animal)[0];
let result = animal[propName];
console.log(result); // <- Do what you want with it
}
答案 1 :(得分:1)
这将为您提供一系列包含每种动物内容的物体。
git checkout A; git add .
答案 2 :(得分:0)
也许将其转换为“非动态键”对象?
const animal = [{"cow":{"leg":4,"eye":2}},{"monkey":{"leg":2,"eye":2}}]
const newanimal = animal.map(obj => {
const keys = Object.keys(obj)
return keys.map(key => ({ key, value: obj[key] }))
}).flat(Math.Infinity)
console.log(newanimal)
答案 3 :(得分:0)
1)用那个钥匙找到一只动物
2)用[animal]返回它
3)照常使用(.leg
)
const animals = [{ cow: { leg: 4, eye: 2 } }, { monkey: { leg: 2, eye: 2 } }];
const animal = 'cow';
const leg = animals.find(a => !!a[animal])[animal].leg;
答案 4 :(得分:0)
您可以使用base
和private void setFragment(Fragment fragment) {
FragmentManager manager = getSupportFragmentManager();
String tagFromFragAddedToBackStack = getCurrentFragment().getTag();
String fragmentTag = fragment.getClass().getName();
String fragFromBackStackTag;
FragmentTransaction fragTransFromBackStack;
int i;
for ( i = 0; i < manager.getBackStackEntryCount() ; i++){
fragFromBackStackTag = manager.getBackStackEntryAt(i).getName();
fragTransFromBackStack = (FragmentTransaction) manager.getBackStackEntryAt(i);
fragFromBackStack = manager.findFragmentByTag(fragFromBackStackTag);
if (fragFromBackStackTag == fragmentTag){
// Here, I would like to delete the stack which matches
}
}
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.main_frame, fragment, fragmentTag);
ft.addToBackStack(tagFromFragAddedToBackStack);
ft.commit();
}
private Fragment getCurrentFragment(){
if (homeFragment.isVisible()){
return homeFragment;
}
else if (autonomyFragment.isVisible()) {
return autonomyFragment;
}
else if (shopFragment.isVisible()) {
return shopFragment;
}
else if (accountFragment.isVisible()) {
return accountFragment;
}
else
return null;
}
。 map
将返回一个新数组。 Object.keys
用于获取动物数组中每个对象内的所有键。然后map
这行将获取腿键的值
Object.keys
答案 5 :(得分:0)
您可以使用新添加的Object.entries
,它最适合imo。
因此,对于您的数据,您将拥有:
const animal = ...
for (a of animal) {
const [animalName, animalDesc] = Object.entries(a)[0]; // assumes there is only one
}