簡體   English   中英

使用內部的一些鍵和對象數組迭代 object

[英]Iterate over object with some keys and array of objects inside

假設我有這種數據格式:

const matchedProperty = "property1"

const jsonObject = {
    "property1": {
        param1: '',
        param2: '',
        param3: '',
        data: [
            {key: value},
            {key: value},
            {key: value},
            {key: value}
        ],
        param4: ''
    },
    "propery2": {
        param1: '',
        param2: '',
        param3: '',
        data: [
            {key: value},
            {key: value},
            {key: value},
            {key: value}
        ],
        param4: ''
    }

}

如何檢查此 json 中是否存在該屬性,然后如何僅提取 data[{}] 和 param1?

想不出有用且有效的東西

標題與正文不匹配,所以這里是迭代和直接訪問:

迭代對象: for..in

let object = { a: 1, b: 2, c: 3 }

for (let key in object) {
  console.log(key + ' = ' + object[key])
}

// a = 1
// b = 2
// c = 3

迭代 Arrays: for..of

let vector = ['a', 'b', 'c']

for (let element of vector) {
  console.log(element)
}

// a
// b
// c

在 Position 訪問數組值

let vector = ['a', 'b', 'c']
console.log(vector[0]) // a
console.log(vector[1]) // b
console.log(vector[2]) // c
console.log(vector[3]) // undefined

按鍵訪問 Object 值

let object = { a: 1, b: 2, c: 3 }
console.log(object["a"]) // 1
console.log(object.a)    // 1
console.log(object["b"]) // 2
console.log(object.b)    // 2
console.log(object["c"]) // 3
console.log(object.c)    // 3
console.log(object["d"]) // undefined
console.log(object.d)    // undefined

檢查是否存在

由於undefined不會在 if 條件下觸發,但值會觸發,只需編寫if object["key"] ; 如果密鑰存在,它將執行下一個代碼塊,否則不會。 (不建議練習。)

像這樣的東西?

 const matchedProperty = "property1" const jsonObject = { "property1": { param1: '', param2: '', param3: '', data: [ {key: 'value'}, {key: 'value'}, {key: 'value'}, {key: 'value'} ], param4: '' }, "propery2": { param1: '', param2: '', param3: '', data: [ {key: 'value'}, {key: 'value'}, {key: 'value'}, {key: 'value'} ], param4: '' } } const result = jsonObject.hasOwnProperty(matchedProperty)?{param1: jsonObject[matchedProperty].param1, data: jsonObject[matchedProperty].data}:{} console.log(result)

暫無
暫無

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

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