微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript - 尝试使用 Array.lenght 访问 foreach 循环中每个数组的最后一个元素

如何解决Javascript - 尝试使用 Array.lenght 访问 foreach 循环中每个数组的最后一个元素

我需要从数组中显示用户文本消息的预览。如果我对循环中的数字进行硬编码,我很容易实现这一点。它有效,但并不漂亮。更漂亮的解决方案是显示最后接收或发送的文本消息。我尝试使用 Array.Length 执行此操作的尝试失败了,因为并非所有用户都拥有相同数量的短信。如果用户有 4 条消息和另外 2 条消息,那么在循环消息较少的用户时会导致未定义错误。这怎么办?

txt.details[0].message //works but not pretty

功能

function getSMS(){
usersms.forEach(function (txt,counter) {
//
//
//get total number of msgs per user
var usertxtarray = txt.details;
var length = (usertxtarray).length;
console.log('msgs per user : ' + length);//prints 2,2,4

//display sms preview
var sms = (txt.details[length].message).substring(0,35) + '...';

//etc... 

});
}

这是(txt.details)的样子

[
  {
    "direction": "from","user": {
      "id": "23","avatar": "myavatar.jpg","first_name": "Jane","last_name": "Doe",},"message": "Lorem ipsum dolor sit amet,?? consectetur adipiscing elit","smsid": "2220","date": "202-12-29","time": "12:00","timezone": "Eastern Standard Time"
  },{
    "direction": "to","message": "Lorem ipsum dolor ? ?sit amet,consectetur adipiscing elit","date": "2021-01-05","time": "09:00","timezone": "Eastern Standard Time"
  }
]

解决方法

数组是零索引的。

因此,如果您的长度 = 4,那么您的最后一项位于索引 3 处。

所以……

var sms = txt.details[length - 1].message.substring(0,35) + '...';

会给你最后一条消息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。