ES6 arrayObj.sort(a,b) => a.property.localeCompare(b.property)
सिंटैक्स का उपयोग करने की कोशिश कर रहा है लेकिन त्रुटि हो रही है:
लेखन त्रुटि: a.property.localeCompare कोई फ़ंक्शन नहीं है।
मैं सोच रहा हूँ localeCompare
दायरे में नहीं है, लेकिन समझ में नहीं आता कि इसे सॉर्ट के दायरे में कैसे बांधा जाए, शायद इसलिए कि डेटा प्रॉक्सी में संग्रहीत है? मैं VueJS 3 के भीतर भी काम कर रहा हूं, लेकिन मुझे नहीं लगता कि यह इस मुद्दे के लिए प्रासंगिक है।
myData =
Proxy {0: {…}, 1: {…}, 2: {…}, 3: {…}, 4: {…}}
[[Handler]]: Object
[[Target]]: Array(5)
0: {itemIndex: 1, itemFmt: 2, itemFmtName: 'Call To Order', guid: 'd66af412-00a0-4c49-b8b5-abaefb79fed0', maxCt: 1, …}
1: {itemIndex: 2, itemFmt: 6, itemFmtName: 'Title/Discussion/Motion', guid: '9f7b9d34-3fcb-42c7-866e-a56f71a8aa4f', maxCt: 0, …}
2: {itemIndex: 4, itemFmt: 6, itemFmtName: 'Title/Discussion/Motion', guid: '406bea5e-1cb0-4d90-96e9-9b80b64ff8ba', maxCt: 0, …}
3: {itemIndex: 5, itemFmt: 6, itemFmtName: 'Title/Discussion/Motion', guid: 'ad9aacda-5100-4eef-9ead-c61e1ec0c285', maxCt: 0, …}
4: {itemIndex: 7, itemFmt: 3, itemFmtName: 'Roll Call', guid: '1715f7a3-066d-4787-8233-a36df2a729a9', maxCt: 1, …}
myData.sort((a, b) => a.itemIndex.localeCompare(b.itemIndex))
1
Harvey Mushman
18 सितंबर 2021, 16:15
1 उत्तर
सबसे बढ़िया उत्तर
localeCompare
एक विधि है String
, लेकिन a.itemIndex
एक Number
है, इसलिए उस प्रॉपर्टी पर विधि उपलब्ध नहीं होगी।
itemIndex
के आधार पर छाँटने के लिए, दो Number
पर घटाव का उपयोग करें:
const myData = [
{itemIndex: 1, itemFmt: 2, itemFmtName: 'Call To Order', guid: 'd66af412-00a0-4c49-b8b5-abaefb79fed0', maxCt: 1 },
{itemIndex: 2, itemFmt: 6, itemFmtName: 'Title/Discussion/Motion', guid: '9f7b9d34-3fcb-42c7-866e-a56f71a8aa4f', maxCt: 0},
{itemIndex: 4, itemFmt: 6, itemFmtName: 'Title/Discussion/Motion', guid: '406bea5e-1cb0-4d90-96e9-9b80b64ff8ba', maxCt: 0},
{itemIndex: 5, itemFmt: 6, itemFmtName: 'Title/Discussion/Motion', guid: 'ad9aacda-5100-4eef-9ead-c61e1ec0c285', maxCt: 0},
{itemIndex: 7, itemFmt: 3, itemFmtName: 'Roll Call', guid: '1715f7a3-066d-4787-8233-a36df2a729a9', maxCt: 1},
]
// sort by itemIndex in ascending order
myData.sort((a,b) => a.itemIndex - b.itemIndex)
console.log(myData)
itemFmtName
द्वारा क्रमबद्ध करने के लिए, दो String
पर localeCompare
का उपयोग करें:
const myData = [
{itemIndex: 1, itemFmt: 2, itemFmtName: 'Call To Order', guid: 'd66af412-00a0-4c49-b8b5-abaefb79fed0', maxCt: 1 },
{itemIndex: 2, itemFmt: 6, itemFmtName: 'Title/Discussion/Motion', guid: '9f7b9d34-3fcb-42c7-866e-a56f71a8aa4f', maxCt: 0},
{itemIndex: 4, itemFmt: 6, itemFmtName: 'Title/Discussion/Motion', guid: '406bea5e-1cb0-4d90-96e9-9b80b64ff8ba', maxCt: 0},
{itemIndex: 5, itemFmt: 6, itemFmtName: 'Title/Discussion/Motion', guid: 'ad9aacda-5100-4eef-9ead-c61e1ec0c285', maxCt: 0},
{itemIndex: 7, itemFmt: 3, itemFmtName: 'Roll Call', guid: '1715f7a3-066d-4787-8233-a36df2a729a9', maxCt: 1},
]
// sort by itemFmtName in alphabetical order
myData.sort((a,b) => a.itemFmtName.localeCompare(b.itemFmtName))
console.log(myData)
2
tony19
19 सितंबर 2021, 05:56