簡體   English   中英

Javascript - 排序數組基於另一個 javascript object 屬性

[英]Javascript -sort array based on another javascript object properties

我有一個 javascript 陣列和一個 object。 需要幫助根據另一個數組中的訂單號對 javascript object 鍵進行排序

在子組數組中,我有名稱、訂單號。 需要根據該訂單號對產品鍵進行排序

const subgroup = [
        {
            "code": "6748",
            "name": "test123",
            "orderNumber": "0"
        },
        {
            "code": "1234",
            "name": "customdata",
            "orderNumber": "1"
        }
    ]

 const offerings = {
        "customdata" : [
    {
        "code": "Audi",
        "color": "black"
      }
    ],
        "test123" : [
    {
        "brand": "Audi",
        "color": "black"
      }
    ]
 }

我相信這應該對你有用。 我在代碼中添加了一些注釋,希望可以很好地解釋正在發生的事情。

 var subgroup = [{ "code": "6748", "name": "test123", "orderNumber": "0" }, { "code": "1234", "name": "customdata", "orderNumber": "1" }]; var offerings = { "customdata": [{ "code": "Audi", "color": "black" }], "test123": [{ "brand": "Audi", "color": "black" }] } function sortObjectFromArray(refArray, sortObject, orderKey = 'order', linkKey = 'key') { // Get copy of refArray let reference = refArray.slice(); // Sort sortObject [ into an array at this point ] let sorted = []; for (let key in sortObject) { // Searches the refArray for the linkKey, and returns the intended index let index = reference.find((item) => item[linkKey] === key)[orderKey]; // Places the sortObject's value in the correct index of the 'sorted' Array sorted[parseInt(index)] = [key, sortObject[key]]; }; // Return an object, created from previous 'sorted' Array return sorted.reduce((obj, [key, value]) => { obj[key] = value; return obj; }, {}); }; offerings = sortObjectFromArray(subgroup, offerings, 'orderNumber', 'name'); console.log(offerings);

暫無
暫無

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

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