我有一些資料想在前端顯示,但它的 name 屬性是一個物件陣列,一個物件嵌套在該物件中。這是請求中資料的結構方式:
name: Array [ {…} ]
??
0: Object { 0: "E", 1: "r", 2: "i", … }
???
0: "E"
???
1: "r"
???
2: "i"
???
3: "c"
???
4: " "
???
5: "C"
???
6: " "
???
7: "P"
???
8: "e"
???
9: "z"
???
10: "z"
???
11: "u"
???
12: "l"
???
13: "o"
???
_id: "6186b6777a38b7da536a6ffd"
???
<prototype>: Object { … }
??
length: 1
我無法通過它 ( userData.name[0].map) 進行映射,因為它不是陣列。
迭代這樣的物件并將每個字母連接在一起的正確方法是什么?
uj5u.com熱心網友回復:
截至目前,我正在使用這個
const fullName = Object.values(userData.name[0]);
console.log(fullName);
fullName.pop();
const name = fullName.join("");
console.log(name);
這給了我我正在尋找的東西 ( // Eric C Pezzulo)
它不漂亮但它有效,如果有人有更簡單的方法來做到這一點或清理它,我愿意接受任何建議。
uj5u.com熱心網友回復:
像這樣的東西可能看起來更干凈一些
const arr = [
{
0: 'E',
1: 'r',
2: 'i',
3: 'c',
4: ' ',
5: 'C',
6: ' ',
7: 'P',
8: 'e',
9: 'z',
10: 'z',
11: 'u',
12: 'l',
13: 'o',
_id: '6186b6777a38b7da536a6ffd'
}
];
const fullName = Object.values(arr[0]).slice(0, -1).join('');
console.log(fullName);
uj5u.com熱心網友回復:
我不知道有沒有更簡單的方法,但是如果您使用 slice,您可以在一條鏈中完成所有操作。您還可以創建一個函式,以提高可讀性和擴展性。
const arr = [{
0: 'E', 1: 'r', 2: 'i', 3: 'c', 4: ' ', 5: 'C', 6: ' ',
7: 'P', 8: 'e', 9: 'z', 10: 'z', 11: 'u', 12: 'l', 13: 'o',
_id: '6186b6777a38b7da536a6ffd'
}];
let name = Object.values(arr[0]).slice(0,-1).join('');
console.log(name);
const getFull=(o)=>Object.values(o).slice(0,-1).join('');
console.log(getFull(arr[0]));
或者全部轉換:
const arr = [{
0: 'E', 1: 'r', 2: 'i', 3: 'c', 4: ' ', 5: 'C', 6: ' ',
7: 'P', 8: 'e', 9: 'z', 10: 'z', 11: 'u', 12: 'l', 13: 'o',
_id: '6186b6777a38b7da536a6ffd'
},{
0: 'C', 1: 'h', 2: 'r', 3: 'i', 4: 's', 5: ' ',
7: 'S', 8: 't', 9: 'r', 10: 'i', 11: 'c', 12: 'k', 13: 'l', 14: 'a', 15: 'n', 16: 'd',
_id: '6186b6777a38b7da536a6ffd'
}];
const getFull=(o)=>Object.values(o).slice(0,-1).join('');
let buffer = arr.map(a=>getFull(a));
console.log(buffer);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/351012.html
標籤:javascript 数组 迭代 javascript对象
上一篇:如何在本機反應中發出POST請求
