简体   繁体   English

从数组获取对象?

[英]Get object from array?

I'm working on a JavaScript chat app. 我正在使用JavaScript聊天应用程序。 I'm trying to retrieve chat messages from a history array. 我正在尝试从历史记录数组检索聊天消息。 Currently I have 1 object in this array but there will be more objects. 目前,我在此数组中有1个对象,但会有更多对象。

When I stringify the array this comes out: 当我对数组进行字符串化时,结果如下:

[[{"chatName":"Piet","time":"13:00","message":"asdasdasd"}],
 "14282568276220321","14282568276220321"]

In console it looks like this : 在控制台中,它看起来像这样

[Array[1], "14282568276220321", "14282568276220321"]
   0: Array[1]
      0: Object
         chatName: "Piet"
         message: "asdasdasd"
         time: "13:00"
        __proto__: Object
        length: 1
      __proto__: Array[0]
      1: "14282568276220321"
      2: "14282568276220321"
      length: 3
  __proto__: Array[0]

I would like to retrieve all messages from the array in a way that I can style it width css, like this for example per message: 我想以一种可以对宽度CSS进行样式设置的方式从数组中检索所有消息,例如每条消息的示例:

<div id"messageContent">
  <b>Piet</b>
  <span>13:00</span>
  <p>asdasdasd</p>
</div>

You can get it using array notation [] and using object properties. 您可以使用数组符号[]和对象属性来获取它。

var array = [[{"chatName":"Piet","time":"13:00","message":"asdasdasd"}],"14282568276220321","14282568276220321"];

var objects = array[0]; // will give the first item in array
var object = objects[0]; // will erturn you first item in that inner array
object.chatName; // Piet
object.time; // 13.00
object.message; // message

to populate it in that dom: 将其填充到该dom中:

var div = document.querySelector("#messageContent");
    div.querySelector("b").textContent = object.chatName;
    div.querySelector("span").textContent = object.time;
    div.querySelector("p").textContent = object.message;

Mostly you may desire to create those messages via loop: 通常,您可能希望通过循环创建这些消息:

  var array = [[{"chatName":"Piet","time":"13:00","message":"asdasdasd"}],"14282568276220321","14282568276220321"]; var div = document.querySelector("#messagecontent"), html = ""; console.log(div); array[0].forEach(function(object) { // you can create a wrapper div for this as well html +="<div>"; html += "<b>"+object.chatName+"</b>"; html += "<span>"+object.time+"</span>"; html += "<p>"+object.message+"</p>"; html += "</div>"; }); div.innerHTML += html; 
 <div id"messagecontent"></div> 

var array =[[{"chatName":"Piet","time":"13:00","message":"asdasdasd"}],"14282568276220321","14282568276220321"];
var html='';
var arrayObjects=array[0];
for (var i=0; i<arrayObjects.length; i++){
var object=arrayObjects[i];
html = '<div id="messageContent" + 'i'><b>object.chatName</b>
<span>object.time</span><p>object.message</p></div>'
}

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

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