Javascript中访问属性的Python方式

Javascript中访问属性的Python方式,javascript,python,Javascript,Python,在Python中,有一种方法可以迭代数组,过滤一些元素,然后只弹出对象的特定属性。其工作方式如下: elements=[{'name':'1',id':1},{'name':'2','id':2},{'name':'3','id':3}] 如果x['id']==1,则过滤的_元素=[x['name']表示元素中的x] 在JS中有没有优雅的方式来做这样的事情 您可以使用和: var-elements=[{'name':'1','id':1},{'name':'2','id':2},{'name

在Python中,有一种方法可以迭代数组,过滤一些元素,然后只弹出对象的特定属性。其工作方式如下:

elements=[{'name':'1',id':1},{'name':'2','id':2},{'name':'3','id':3}]
如果x['id']==1,则过滤的_元素=[x['name']表示元素中的x]
在JS中有没有优雅的方式来做这样的事情

您可以使用和:

var-elements=[{'name':'1','id':1},{'name':'2','id':2},{'name':'3','id':3}];
var filtered=elements.filter(x=>x.id==1).map(x=>x.name);

console.log(过滤)JS有Array.map和Array.filter:不要试图编写Python JavaScript。每种语言都不同,有不同的习语。学习JavaScript实现这一点的方法,并使用它。
var f=elements.filter(obj=>(obj.id==1)).map(x=>x.name)
@JacobIRR注意:我不认为这是等效的,我不认为任何JS引擎会在一次过程中优化它,我认为
Array.filter
是迫切需要评估的。在JS中,我只使用常规循环。我很想知道我的假设是否是错误的,尽管我认为没有JS引擎会在一次过程中优化它,这是正确的。IOW
Array.filter
是迫切需要评估的。在JS中,我只使用常规循环。我很想知道我的假设是否是错误的,尽管。@juanpa.arrivillaga我所知道的任何引擎都不会做懒散的评估。尽管如此,还是有可能的,如果回调确实是纯粹的,那么就没有什么可以阻止这种优化路径。我怀疑在将来,我们可能会看到一个延迟计算的数组方法链。不过,现在您可以使用像Lodash这样的库,它将使用
(elements).filter(x=>x.id==1).map(x=>x.name)
.chain(elements).filter(x=>x.id==1).map(x=>x.name)