简体   繁体   English

如何在javascript中迭代数组中对象的键值对

[英]How to iterate the key value pairs of an object in an array in javascript

I have some data I'd like to display in my front end but its name property is an array of objects, with an object nested in that object.我有一些数据想在前端显示,但它的 name 属性是一个对象数组,一个对象嵌套在该对象中。 This is how the data is structured in the request:这是请求中数据的结构方式:

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

I can't map through it ( userData.name[0].map ) because its not an array.我无法映射它( userData.name[0].map ),因为它不是数组。

Whats the correct way to iterate though an object like this and join each letter together?迭代这样的对象并将每个字母连接在一起的正确方法是什么?

As of right now I'm using this截至目前,我正在使用这个

  const fullName = Object.values(userData.name[0]);
  console.log(fullName);
  fullName.pop();
  const name = fullName.join("");
  console.log(name); 

Which gives me what I'm looking for ( // Eric C Pezzulo )这给了我我正在寻找的东西( // Eric C Pezzulo

Its not pretty but it works, If anyone has a simpler way to do this or clean this up I'm open to any suggestions.它不漂亮但它有效,如果有人有更简单的方法来做到这一点或清理它,我愿意接受任何建议。

Something like this may look a little cleaner像这样的东西可能看起来更干净一些

 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);

I don't know that there's a simpler way, but if you use slice you can do it all in one chained line.我不知道有没有更简单的方法,但是如果您使用 slice,您可以在一条链中完成所有操作。 You could also create a function, for readability and extension.您还可以创建一个函数,以提高可读性和扩展性。

 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]));

Or to transform all:或者全部转换:

 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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM