簡體   English   中英

如何循環和遍歷包含objetcs和交換值的Javascript對象

[英]How to loop and iterate over Javascript objects containing objetcs and swap values

var person = {
          course1:{Name:"xxx", day:"mon", time:"2am-6pm"},
          course2:{Name:"yyy", day:"tue", time:"7am-9pm"},
          course3:{Name:"zzz", day:"tue", time:"2am-6pm"},
          course4:{Name:"aaa", day:"wed", time:"2am-6pm"},
          course5:{Name:"bbb", day:"thu", time:"2am-6pm"},
          course6:{Name:"ccc", day:"mon", time:"2am-6pm"} 
        };

任何人都可以顯示如何循環和遍歷此person對象並交換course1和course2對象的值(名稱,日期,時間)並執行某些操作,替換它並再次交換course1和course3進行操作等等嗎?

您可以使用Object.keys來獲取所有鍵數組,然后可以對其進行迭代。

像這樣:

 const person = { course1: { Name: "xxx", day: "mon", time: "2am-6pm" }, course2: { Name: "yyy", day: "tue", time: "7am-9pm" }, course3: { Name: "zzz", day: "tue", time: "2am-6pm" }, course4: { Name: "aaa", day: "wed", time: "2am-6pm" }, course5: { Name: "bbb", day: "thu", time: "2am-6pm" }, course6: { Name: "ccc", day: "mon", time: "2am-6pm" } }; Object.keys(person).forEach((key) => { const course = person[key]; // Do your logic here... }); 

const person = {
    course1:{Name:"xxx", day:"mon", time:"2am-6pm"},
    course2:{Name:"yyy", day:"tue", time:"7am-9pm"},
    course3:{Name:"zzz", day:"tue", time:"2am-6pm"},
    course4:{Name:"aaa", day:"wed", time:"2am-6pm"},
    course5:{Name:"bbb", day:"thu", time:"2am-6pm"},
    course6:{Name:"ccc", day:"mon", time:"2am-6pm"} 
};

const courses = Object.keys(person).filter(course => course !== 'course1');

courses.forEach(key => {
    const copyOne = Object.assign({}, person['course1']);
    const copyCurrent = Object.assign({}, person[key]);

    person['course1'] = copyCurrent;
    person[key] = copyOne;
});

console.log(person);

您希望在每次迭代時都與course1進行比較,因此在forEach使用鍵沒有任何意義。

// find the least expensive course

// for easier coding, set a cost property for each course.
for(let course in person) {
    course['cost'] = getCourseCost(course);
}

let lowestCostCourse = person['course1'];

// this compares person['course1'] to itself, but so what
for(let course in person) {
    if(course['cost'] < lowestCostCourse['cost']) {
       lowestCostCourse = course;
    }
}

暫無
暫無

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

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