Javascript 使数组保存10个最新条目
我正在尝试获取一个数组来保存10个最新的值,但到目前为止它无法使其工作Javascript 使数组保存10个最新条目,javascript,jquery,Javascript,Jquery,我正在尝试获取一个数组来保存10个最新的值,但到目前为止它无法使其工作 var messages = new Array(10); function addmessage(message) { messages.unshift(message); messages.length = 10; } 但是当我试图显示数组时,我无法让它按顺序显示消息 我用 $.each(messages, function(key, value) { if(value != null) {
var messages = new Array(10);
function addmessage(message) {
messages.unshift(message);
messages.length = 10;
}
但是当我试图显示数组时,我无法让它按顺序显示消息
我用
$.each(messages, function(key, value) {
if(value != null) {
$("#messages").append(value + "<br>");
}
});
$。每个(消息、函数(键、值){
if(值!=null){
$(“#消息”)。追加(值+”
”;
}
});
var消息=[]//改为使用数组文本。
函数addmessage(message){
//取消移位将新值加载到开头
messages.unshift(消息);
//如果要将其放在末尾,可以使用push()
//消息。推送(消息);
//如果你真的想让它保持10,那就把最后一个去掉
如果(messages.length>10){
messages.pop();
//如果push()
//messages.shift()
}
}
//循环并首先附加“最新”
$.each(消息、函数(键、值){
if(值!=null){
$(“#消息”)。追加(值+”
”;
}
});
如果您随后以最新的优先顺序实时/动态加载消息,var messages=[]//改为使用数组文本。
函数addmessage(message){
//取消移位将新值加载到开头
messages.unshift(消息);
//如果要将其放在末尾,可以使用push()
//消息。推送(消息);
//如果你真的想让它保持10,那就把最后一个去掉
如果(messages.length>10){
messages.pop();
//如果push()
//messages.shift()
}
}
//循环并首先附加“最新”
$.each(消息、函数(键、值){
if(值!=null){
$(“#消息”)。追加(值+”
”;
}
});
如果您随后以最新的优先顺序实时/动态加载消息,,可能您希望项目按相反的顺序加载?,可能您希望项目按相反的顺序加载?您希望的顺序是什么?您将条目放在数组的开头,因此顺序颠倒 例如:
addmessage('test'); addmessage('test2'); addmessage('test4');
addmessage('test6'); addmessage('test23'); addmessage('test34');
addmessage('test32'); addmessage('test3'); addmessage('test45');
addmessage('test7'); addmessage('test8');
结果生成如下数组:
["test8", "test7", "test45", "test3", "test32", "test34", "test23", "test6", "test4", "test2"]
function addmessage(message){
messages.push(message);
messages.shift();
}
如果您想让它以另一种方式运行,则函数应如下所示:
["test8", "test7", "test45", "test3", "test32", "test34", "test23", "test6", "test4", "test2"]
function addmessage(message){
messages.push(message);
messages.shift();
}
结果是相反的:
["test2", "test4", "test6", "test23", "test34", "test32", "test3", "test45", "test7", "test8"]
你想要什么样的订单?您将条目放在数组的开头,因此顺序颠倒 例如:
addmessage('test'); addmessage('test2'); addmessage('test4');
addmessage('test6'); addmessage('test23'); addmessage('test34');
addmessage('test32'); addmessage('test3'); addmessage('test45');
addmessage('test7'); addmessage('test8');
结果生成如下数组:
["test8", "test7", "test45", "test3", "test32", "test34", "test23", "test6", "test4", "test2"]
function addmessage(message){
messages.push(message);
messages.shift();
}
如果您想让它以另一种方式运行,则函数应如下所示:
["test8", "test7", "test45", "test3", "test32", "test34", "test23", "test6", "test4", "test2"]
function addmessage(message){
messages.push(message);
messages.shift();
}
结果是相反的:
["test2", "test4", "test6", "test23", "test34", "test32", "test3", "test45", "test7", "test8"]
以最简单的形式,您可以:
messages.push(message);
messages.length > 9 && messages.shift();
这将在末尾添加新消息,并在长度达到10后从前面删除一条消息。最简单的形式是:
messages.push(message);
messages.length > 9 && messages.shift();
这将在末尾添加新消息,并在长度达到10时从前面删除一条消息。Yep,还有
if(messages.length>10)messages.pop()
很好的提示,从来没有想过从0开始:DLatest应该是最后一个,所以不需要prepend()。您真正想要的顺序是什么,它是用来聊天的,所以它保留了最后10条消息,然后应该按照它们出现的顺序显示它们,所以我想我可以使用push()
而不是unshift()
,然后使用shift()
而不是pop()
是的,还有if(messages.length>10)消息。pop()
很好的提示,从来没有想过从0开始:DLatest应该是最后一个,所以不需要prepend()。你真正想要的顺序是什么?好吧,它是用来聊天的,所以它保留了最后10条消息,然后它应该按照它们出现的顺序显示它们,所以我想我可以使用push()
而不是unshift()
然后使用shift()
而不是pop()
嗯,它们根本没有按顺序出现。嗯,它们根本没有按顺序出现。访问缺少的成员将返回未定义的值
,因此您的测试正在进行类型转换。考虑<代码>(关键字)< /COD>。访问缺少的成员将返回一个值<代码>未定义,因此您的测试在类型转换上不存在。考虑<代码>(关键字)< /代码>。