簡體   English   中英

循環遍歷嵌套數組以返回對象的值

[英]Loop through nested array to return values of object

我有一個嵌套數組,我想要做的是獲取嵌入在數組中的對象的所有值。 我目前正在獲取每個嵌入的對象並調用Object.values來獲取值,但是當數組大小很大時,此方法效率不高。 有沒有辦法遍歷數組並返回每個對象的值? 任何幫助表示贊賞。 提前致謝。

 const data = [{"path":"uploads\\\\20211115000755-package.json"},{"path":"uploads\\\\20211115012255-index.html"},{"path":"uploads\\\\20211115014342-dataServerMid.js"},{"path":"uploads\\\\20211115031212-index.js"},{"path":"uploads\\\\20211115031218-uploadDataServer.js"},{"path":"uploads\\\\20211115031232-index.js"},{"path":"uploads\\\\20211115031244-dataServerMid.js"},{"path":"uploads\\\\20211115031250-uploadData.css"},{"path":"uploads\\\\20211115031303-20211115012255-index.html"},{"path":"uploads\\\\20211115031318-20211115031303-20211115012255-index.html"},{"path":"uploads\\\\20211115050204-exportsCapture.JPG"},{"path":"uploads\\\\20211115052347-[FREE] Stunna 4 Vegas x DaBaby x NLE Choppa Type Beat Call of Duty (320 kbps).mp3"},{"path":"uploads\\\\20211115200304-Readme.docx"},{"path":"uploads\\\\20211115202751-Visual Artist Series Fall 2019Corrected.docx"},{"path":"uploads\\\\20211115203354-ln command examples.docx"},{"path":"uploads\\\\20211115210027-Q2.docx"},{"path":"uploads\\\\20211116011817-Fall 2019 ABCD Plattsburgh Syllabi Course Description.docx"}] //change this to loop and return all the values instead of having to call by index const dataValues = [Object.values(data[0]).toString(), Object.values(data[1]).toString(), Object.values(data[2]).toString()] console.log(dataValues)

更新:我嘗試了@yousaf 的方法。 它適用於我的 3 項數組,但不適用於此:

 const data = [{ "path": "uploads\\\\20211115000755-package.json" }, { "path": "uploads\\\\20211115012255-index.html" }, { "path": "uploads\\\\20211115014342-dataServerMid.js" }, { "path": "uploads\\\\20211115031212-index.js" }, { "path": "uploads\\\\20211115031218-uploadDataServer.js" }, { "path": "uploads\\\\20211115031232-index.js" }, { "path": "uploads\\\\20211115031244-dataServerMid.js" }, { "path": "uploads\\\\20211115031250-uploadData.css" }, { "path": "uploads\\\\20211115031303-20211115012255-index.html" }, { "path": "uploads\\\\20211115031318-20211115031303-20211115012255-index.html" }, { "path": "uploads\\\\20211115050204-exportsCapture.JPG" }, { "path": "uploads\\\\20211115052347-[FREE] Stunna 4 Vegas x DaBaby x NLE Choppa Type Beat Call of Duty (320 kbps).mp3" }, { "path": "uploads\\\\20211115200304-Readme.docx" }, { "path": "uploads\\\\20211115202751-Visual Artist Series Fall 2019Corrected.docx" }, { "path": "uploads\\\\20211115203354-ln command examples.docx" }, { "path": "uploads\\\\20211115210027-Q2.docx" }, { "path": "uploads\\\\20211116011817-Fall 2019.docx" }] //change this to loop and return all the values instead of having to call by index const dataValues = data.map((obj, idx) => obj["path" + (idx + 1)]) console.log(dataValues)

使用for...of遍歷數組,然后將值推送到新數組。

 const data=[{path1:"uploads\\\\20211115000755-package.json"},{path2:"uploads\\\\20211115012255-index.html"},{path3:"uploads\\\\20211115014342-dataServerMid.js"}]; const arr = []; for (const obj of data) { const [value] = Object.values(obj); arr.push(value); } console.log(arr);

或者你可以使用map

 const data=[{path1:"uploads\\\\20211115000755-package.json"},{path2:"uploads\\\\20211115012255-index.html"},{path3:"uploads\\\\20211115014342-dataServerMid.js"}]; const arr = data.map(obj => { const [value] = Object.values(obj); return value; }); console.log(arr);

使用 for 循環迭代data

 const data = [{ "path1": "uploads\\\\20211115000755-package.json" }, { "path2": "uploads\\\\20211115012255-index.html" }, { "path3": "uploads\\\\20211115014342-dataServerMid.js" }] const dataValues = []; for(var i = 0; i < data.length; i++) { dataValues.push(Object.values(data[i]).toString()) } console.log(dataValues)

這可能對你有幫助。 試試看..

 function nestedLoop(obj) { const res = {}; function recurse(obj, current) { for (const key in obj) { let value = obj[key]; if(value != undefined) { if (value && typeof value === 'object') { recurse(value, key); } else { // Do your stuff here to var value res[key] = value; } } } } recurse(obj); return res; }

暫無
暫無

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

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