Javascript 在JS中对json数组使用find方法时只发送键值

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

我将从JSON数组中获取一个值,因此我使用
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;