Javascript 如何从dict数组中提取一些数据以放入数组中?

Javascript 如何从dict数组中提取一些数据以放入数组中?,javascript,reactjs,Javascript,Reactjs,我试图从dict数组中提取一些数据,但它不起作用 这是我的密码: var myarray = [{'country': 'US', 'type': 'eat'}, {'country': 'DE', 'type': 'test'}] var arr = [] for (var key in myarray){ if (key.hasOwnProperty('country')){ arr.push(key.country) } } console.log(arr);

我试图从dict数组中提取一些数据,但它不起作用

这是我的密码:

var myarray = [{'country': 'US', 'type': 'eat'}, {'country': 'DE', 'type': 'test'}]

var arr = []
for (var key in myarray){
if (key.hasOwnProperty('country')){
        arr.push(key.country)
    }
}
console.log(arr);
最后我想要的是这个arr=['US','DE']

我知道我正在使用React.js,也许有一个函数更有效地做到这一点。。。但是我没有发现

这是我的密码:


非常感谢你的帮助

代码不起作用的原因是数组的iterable键只是它的索引。所以你在检查0.hasOwnProperty'country'e.t.c.,这显然没有意义。您可以通过执行以下操作来解决此问题:

var myarray = [{'country': 'US', 'type': 'eat'}, {'country': 'DE', 'type': 'test'}];
const arr = myarray.map(c => c.country);
if (myarray[key].hasOwnProperty('country')){
        arr.push(myarray[key].country)
    }
}
但减少阵列更有意义:

const arr = myarray.reduce((a, c) => a.concat(c.country || []), []);

代码无法工作的原因是数组的iterable键只是它的索引。所以你在检查0.hasOwnProperty'country'e.t.c.,这显然没有意义。您可以通过执行以下操作来解决此问题:

if (myarray[key].hasOwnProperty('country')){
        arr.push(myarray[key].country)
    }
}
但减少阵列更有意义:

const arr = myarray.reduce((a, c) => a.concat(c.country || []), []);

您想要实现的与React无关,可以使用javascript功能实现。另一方面,您希望返回myarray中每个对象的特定键的值

您可以像这样使用Array.prototype.reduce方法执行该操作

设myArray=[ {'country':'US','type':'eat'}, {'country':'DE','type':'test'} ]; const result=myArray.reduceacumerator,当前=>{ 返回累加器.concatcurrent.country; }, [];
console.logresult 您想要实现的与React无关,可以使用javascript功能实现。另一方面,您希望返回myarray中每个对象的特定键的值

您可以像这样使用Array.prototype.reduce方法执行该操作

设myArray=[ {'country':'US','type':'eat'}, {'country':'DE','type':'test'} ]; const result=myArray.reduceacumerator,当前=>{ 返回累加器.concatcurrent.country; }, []; console.logresult;