簡體   English   中英

使用 find() 在 JSON 中查找 object

[英]Finding an object in JSON with find()

這似乎是一個愚蠢的問題……但是……

所以我只是想找到一個存儲在數組(JSON)中的 object,當我執行這個簡單的代碼時,它給了我未定義的

let test = [
    {id : "1", name:"ExpressJS", phone : "123"},
    {id : "2", name:"ReactJS", phone:"456"},
    {id : "3", name:"CRUD programming", phone:"789"},
]
let data = test.find((a) => {a.id == 1})
console.log(data);

**結果:未定義**

您沒有從箭頭 function 返回任何內容:

(a) => {a.id == 1}

您可以使用以下兩個選項之一修復它:

let data = test.find((a) => a.id == 1);

或者:

let data = test.find((a) => { return a.id == 1 });

當您在箭頭 function 中使用花括號時,您需要一個顯式的 return 語句。 或者只是省略花括號

let test = [
    {id : "1", name:"ExpressJS", phone : "123"},
    {id : "2", name:"ReactJS", phone:"456"},
    {id : "3", name:"CRUD programming", phone:"789"},
]
let data = test.find((a) => a.id === "1")
console.log(data);

如果要使用花括號,則必須輸入return關鍵字。 否則,您不需要顯式使用return關鍵字。 請參閱文檔: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

在以下代碼中查看兩種方式。

let test = [
    {id : "1", name:"ExpressJS", phone : "123"},
    {id : "2", name:"ReactJS", phone:"456"},
    {id : "3", name:"CRUD programming", phone:"789"},
]

let res1 = test.find((a) => a.id == 1)

let res2 = test.find((a) => { return a.id == 1 })

console.log(res1); // { id: '1', name: 'ExpressJS', phone: '123' }
console.log(res2); // { id: '1', name: 'ExpressJS', phone: '123' }

在這兩種方式中,我們都會得到相同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM