Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

จัดเรียงอาร์เรย์อ็อบเจกต์ตามอาร์เรย์ key อีกตัว - JavaScript

สมมติว่าเรามีอาร์เรย์สองตัวดังนี้:

const arr1 = ['d','a','b','c'];
const arr2 = [{a:1},{c:3},{d:4},{b:2}];

เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ทั้งสอง ฟังก์ชันควรจัดเรียงอาร์เรย์ที่สองตามลำดับของอาร์เรย์แรก

เราต้องเรียง key ของอาร์เรย์ที่สองตามองค์ประกอบของอาร์เรย์แรก ผลลัพธ์จะเป็น:

const output = [{d:4},{a:1},{b:2},{c:3}];

ตัวอย่าง

โค้ดต่อไปนี้เป็นตัวอย่าง:

const arr1 = ['d','a','b','c'];
const arr2 = [{a:1},{c:3},{d:4},{b:2}];

const sortArray = (arr1, arr2) => {
  arr2.sort((a, b) => {
    const aKey = Object.keys(a)[0];
    const bKey = Object.keys(b)[0];
    return arr1.indexOf(aKey) - arr1.indexOf(bKey);
  });
};

sortArray(arr1, arr2);
console.log(arr2);

ผลลัพธ์

จะแสดงผลในคอนโซลดังนี้:

[ { d: 4 }, { a: 1 }, { b: 2 }, { c: 3 } ]