问题描述
在数组对象中查找值的语法是什么?
var pStData = [];
pStData.push({ st: 'WV',geom: 'xxx' });
pStData.push({ st: 'TX',geom: 'yyy' });
var sGeom = pStData.find(pStData => pStData.st == 'TX').geom;
console.log(sGeom);
在我的代码中,pStData.find(pStData => pStData.st == 'TX')
是undefined
。
解决方法
除了根本没有jQuery之外,您正在将数组定义为对象数组。定义这样的对象:
var pStData = {};
pStData['WV'] = {geom: 'xxx'};
pStData['TX'] = {geom: 'yyy'};
然后您可以通过以下方式简单地访问
var sGeom = pStData['WV'].geom;
您也可以通过以下方式访问它
var sGeom = pStData.WV.geom;
当然,如果只查找字符串值,则不需要定义对象,例如,这同样适用。
var pStData = {};
pStData['WV'] = 'xxx';
pStData['TX'] = 'yyy';
但是,如果以后需要添加额外的数据值,则将其定义为对象确实可以将来验证您的代码。永远不要害怕做一些将来的证明,它以后可以节省很多工作。
,使用此功能:
python
所以,在您的情况下:
function findObjectInArrayByProperty(array,propertyName,propertyValue) {
return array.find((o) => { return o[propertyName] === propertyValue });
}
output-> {st:'TX',geom:'yyy'}