色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

es6 查找json中的所有同名字段

錢多多1年前8瀏覽0評論

在 ES6 中,我們可以使用新的迭代器和生成器來查找 JSON(JavaScript Object Notation)中的所有同名字段。 JSON 是一種輕量級的數據交換格式,常用于前端和后端的數據傳輸。

const jsonData = {
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
},
"emails": [
"john.doe@mail.com",
"john.doe2@mail.com"
],
"phone": "555-555-5555"
};
function* findKeys(obj, keyName) {
// 迭代對象
for (let [key, value] of Object.entries(obj)) {
// 如果 key 名稱匹配,那么就返回 key 值
if (key === keyName) yield value;
// 如果當前的 value 是對象或數組,就遞歸查找
if (typeof value === 'object' && value !== null) {
yield* findKeys(value, keyName);
}
}
}
// 使用生成器查找 JSON 中所有同名字段的值
for (let value of findKeys(jsonData, 'name')) {
console.log(value);
}

在上面的代碼中,我們定義了一個生成器函數 findKeys,它接受兩個參數:一個 JSON 對象和一個鍵名。該函數使用 for..of 循環迭代 JSON 對象,逐一比較鍵名是否與輸入的鍵名相同。如果鍵名相同,就使用 yield 關鍵字返回該字段的值。

此外,如果發現當前 value 是一個對象或數組,那么就使用 yield* 關鍵字遞歸查找。

最后,我們可以使用 for..of 循環和生成器來遍歷所有同名字段的值,并對它們進行進一步的處理。