JS中如何让数组保持一定数据而可以更新新的数据。懂的进

例如:varA=总的数据varB=新添加的数据A=B+A条件:A中保持10条B数据。动作:每添一条新的B数据。最旧的一条B数据自动消失。结果:让A中只保持10条数据。希望... 例如:
var A=总的数据
var B=新添加的数据

A = B + A

条件:A中保持10条B数据。
动作:每添一条新的B数据。最旧的一条B数据自动消失。
结果:让A中只保持10条数据。

希望回答用for循环来实现。别的也可以。
也可以这么理解啊。就是说A=B+A。检测A里有几个数据。当超过10个时。最老的那个元素被清除。因为这个等式里的排列方式就是先来的排第一。只是检测一下他们的排序就成。
展开
 我来答
百度网友91bb874
2007-07-18 · 超过28用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:0
展开全部
似乎不太好解决,B数据中需存下当前时间.

<html>
<head>
<title>JS OBJECT STUDY</title>
<script>
//保持数组长度为10,当放第十一个元素的时候,原数组中的最老元素将被取代
function MyArray(){
this.array=new Array();//存放元素
this.pushTime=new Array();//存放时间
}
MyArray.prototype.push=function(obj){
var ctime=new Date().getTime();
if(this.array.length>=10){
//拷贝数组
var pt=this.pushTime.concat("");
//对数组排序
pt.sort();
var index=0;
//寻找最老元素的下标
for(var i=0;i<this.pushTime.length;i++){
if(this.pushTime[i]==pt[0]){
index=i;
break;
}
}
//将最老元素替换
this.array.splice(index,1,obj);
this.pushTime.splice(index,1,ctime);
}else{
this.array.push(obj);
this.pushTime.push(ctime);
}
}
MyArray.prototype.pop=function(){
this.pushTime.pop();
return this.array.pop();
}
var a=new MyArray();
a.push("I");
a.push("love");
a.push("you");
a.push(",");
a.push("gao");
a.push("yuan");
a.push("hong");
a.push("ceng");
a.push("jing");
a.push("!");
a.push("ly");
alert(a.array);
alert(a.pop());
</script>
</head>
<body>

</body>
</html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
猫咪圈
推荐于2016-05-22
知道答主
回答量:12
采纳率:0%
帮助的人:7.1万
展开全部
//运算代码
function FixArray()
{
this.ArrayObj = new Array();
this.length = 10; //设定上限大小
this.head="";
this.end="";
this.add=function(Node){
if (this.ArrayObj.length<this.length)
this.ArrayObj.unshift(Node);
else
{
this.ArrayObj.pop();
this.ArrayObj.unshift(Node);
}
}
this.get=function(){
return this.head + this.ArrayObj.join("") + this.end;
}
}

var ChannelArray=new FixArray();
ChannelArray.end= document.all("MyChannel").innerHTML;

//显示代码
ChannelArray.add( "<div align=\"center\" id=\"TPmenu\" onmousedown=\"MoveItems(this);\">" + CreateDIV.innerHTML + "</div>");
MyChannel.innerHTML = ChannelArray.get();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
uaoou
2007-07-17 · TA获得超过124个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:138万
展开全部
没太明白的意思,给你提供一个思路:
<script>
var a={dates:[{id:1,name:'aa'},{id:2,name:'bb'},{id:3,name:'cc'}]};
var b={id:4,name:'dd'};
alert("a[\"dates\"].length: "+a["dates"].length+"\ta[\"dates\"][0][\"id\"]: "+a["dates"][0]["id"]);

a["dates"][0]=b;//修改
a["dates"][a["dates"].length]=b//添加
alert("a[\"dates\"].length: "+a["dates"].length+"\ta[\"dates\"][0][\"id\"]: "+a["dates"][0]["id"]);
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式