السلام عليكم
اريد مساعدة في جافاسكريبت
لدي هذه البيانات
var my_data = '[{
"143390192": {
"title": " title 1",
"descripiton": "text ..",
"link": "/df"
}
}, {
"14339019": {
"title": " title 2",
"descripiton": "text ..",
"link": "/df"
}
}, {
"1433901": {
"title": " title 3",
"descripiton": "text ..",
"link": "/df"
}
}]';
اريد الحصول على قيمة title ل عنصر 14339019
بالجيكوري او جافاسكريبت
يبدو أن البيانات لديك موجودة في شكل نص string، لذلك يجب تحويلها إلى JSON أولًا من خلال التابع JSON.parse
const new_my_data = JSON.parse(my_data)
بعد ذلك يمكننا أن نقوم بالمرور على كل عناصر المصفوفة من خلال التابع map بالشكل التالي:
new_my_data.map(item => item['1433901927011940748'].title); // [' title 1', ' title 2', ' title 3']
بهذا الشكل يمكننا الحصول على كل قيم الخاصية title في كل العناصر.
إن أردت إزالة المسافات الإضافية الموجودة في كل عنوان، يمكن إستخدام التابع trim بالشكل التالي:
new_my_data.map(item => item['1433901927011940748'].title.trim()); // ['title 1', 'title 2', 'title 3']
لا مشكلة، مازال بإمكاننا الوصول إلى كل العناوين Titles من خلال إستخدام التابع Object.keys الذي سيقوم بجلب كل المعرفات id الخاصة بكائن، معين، مثال:
const new_my_data = JSON.parse(my_data); new_my_data.map(item => Object.keys(item)[0]); // ['143390192', '14339019', '1433901']
الآن يمكننا إستعمال كل معرف من النتيجة السابقة للحصول على قيمة الخاصية title:
new_my_data.map(item => item[Object.keys(item)[0]].title); // [' title 1', ' title 2', ' title 3']
ونستطيع تنفيذ التابع trim بعد ذلك:
new_my_data.map(item => item[Object.keys(item)[0]].title.trim()); // ['title 1', 'title 2', 'title 3']
التعليقات