Javascript 在JS中对json数组使用find方法时只发送键值
我将从JSON数组中获取一个值,因此我使用Javascript 在JS中对json数组使用find方法时只发送键值,javascript,typescript,Javascript,Typescript,我将从JSON数组中获取一个值,因此我使用find方法: let actualElm = this.initialData.find(elm => { if (elm.identifiant == this.actualId) { return elm.country; } }); find的问题是它返回了所有对象(elmobject),我只会得到elm.country 我怎样才能继续 您可以简化您的功能,只需在以下时间后调用.country: let actualElm
find
方法:
let actualElm = this.initialData.find(elm => {
if (elm.identifiant == this.actualId) {
return elm.country;
}
});
find
的问题是它返回了所有对象(elm
object),我只会得到elm.country
我怎样才能继续 您可以简化您的功能,只需在以下时间后调用.country
:
let actualElm = this.initialData.find(elm => elm.identifiant == this.actualId).country;
如果您的find()
在您的案例中可能失败,请添加一个故障保护(…| |{})
:
Find接受一个返回布尔值的函数,该函数确定当前元素是否与给定条件匹配。如果这是真的,则返回整个元素
您可以使用foreach来实现您想要的内容这些是的语义。它将返回回调函数计算为值的第一个元素。在您的示例中,回调方法返回
country
属性,这是一个真实的值,但这不会改变find()
仍将返回完整对象的事实
如果保证找到结果,您可以执行以下操作:
let country = this.initialData.find(e => e.identifiant == this.actualId).country;
find
方法扫描数组,并在提供的函数返回truthy值时返回数组的一个元素。在您的示例中,当if
条件为true时,它将选择该元素并返回它
您可以这样做:
let elm = this.initialData.find(elm => elm.identifiant == this.actualId);
let actualElm = (elm || {}).country;
注意,如果找不到元素,find可以返回
未定义的
,因此我必须检查它是否存在。您能提供JSON数据吗?现在我们必须猜测您的数据,如果没有JSON数据,我们将如何找到。同时提供JSON数据,为什么不通过管道传递另一个函数,并对返回的元素执行任何操作?这样,您的代码是干净和可读的。
let elm = this.initialData.find(elm => elm.identifiant == this.actualId);
let actualElm = (elm || {}).country;