【发布时间】:2021-04-15 07:22:25
【问题描述】:
我需要显示来自数组的用户文本消息的预览。如果我硬编码循环中的数字,我很容易实现这一点。它有效,但并不漂亮。一个更漂亮的解决方案是显示最后接收或发送的文本消息。我用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",
"user": {
"id": "23",
"avatar": "myavatar.jpg",
"first_name": "Jane",
"last_name": "Doe",
},
"message": "Lorem ipsum dolor ???? ????sit amet, consectetur adipiscing elit",
"smsid": "2220",
"date": "2021-01-05",
"time": "09:00",
"timezone": "Eastern Standard Time"
}
]
【问题讨论】:
标签: javascript arrays foreach