我想显示产品浏览历史,所以我将产品id存储在浏览器cookie中。
因为历史记录列表仅限于5项,所以我将cookie值转换为一个数组,然后检查它的长度并删除多余的内容。
下面的代码是我尝试过的,但它不起作用;数组项没有被删除。
我想问一下,如何限制数组长度,使其只能存储5个项目?
或
如何在数组索引4之后剪切项目?
var id = product_id;
var browseHistory = $.cookie('history');
if (browseHistory != null) {
var old_cookie = $.cookie('history');
var new_cookie = '';
if (old_cookie.indexOf(',') != -1) {
var arr = old_cookie.split(',');
if (arr.length >= 5) {
arr.splice(4, 1)
}
}
new_cookie = id + ',' + old_cookie;
$.cookie('history', new_cookie, { expires: 7, path: '/' });
} else {
$.cookie('history', id, { expires: 7, path: '/' });
}
arr.length = Math.min(arr.length, 5)
最快最简单的方法是设置。长度
属性设置为所需的长度:
arr.length = 4;
这也是重置/清空阵列的理想方式:
arr.length = 0;
警告:设置此属性也可以使数组比实际长度更长:如果它的长度是2,运行arr.length=4
将向它添加两个未定义的
项。也许添加一个条件:
if (arr.length > 4) arr.length = 4;
或者:
arr.length = Math.min(arr.length, 4);
您没有正确使用拼接:
arr.splice(4, 1)
这将删除索引4中的1项。看这里
我想你应该使用slice:
arr.slice(0,5)
这将返回位置0到4的元素。
这假设您的所有其他代码(cookies等)都正常工作
问题内容: 我正在使用jQuery的自动完成功能。当我尝试检索超过17000条记录的列表(每条记录的长度不超过10个字符)时,它超出了长度,并引发错误: 异常信息: 异常类型:InvalidOperationException 异常消息:使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过了在maxJsonLength属性上设置的值。 我可以为in 设
在GET操作中,我们对查询参数的长度是否还有任何限制。前面我想我用的是255,这似乎增加了,但我不知道增加的限制是什么。 我面临的问题是,我尝试GETendpoint,如http://localhost:8080/data/ids=<5000 comma seaprated ids>,但失败了 但是具有500个ID(如http://localhost:8080/data/ids=<500 comm
我正在尝试查看是否可以在和调度程序上生成100万个。 对于来说,它大部分时间都可以工作,对于1000来说,它有时可以工作,但大部分时间都失败,对于10000来说,它几乎每次都失败,如果我告诉它在上运行它,并且根本不使用的话,它就可以工作。 我怎样才能纠正这种行为呢?
本文向大家介绍javascript 数组的定义和数组的长度,包括了javascript 数组的定义和数组的长度的使用技巧和注意事项,需要的朋友参考一下 本文提供一款简单的js入门教程,这是一款js数组定义与数组长度实例教程,如果你正在学习js数组的话,我们这里告诉你如何定义数组以及增加数组与数组长度计算实例。 先来看看如何定义数组 或者数组直接量: 下面看一下,在数组后面增加一个元素 数组的长度
问题内容: 我想知道如何初始化整数数组,使其大小和值在程序执行过程中发生变化,有什么建议吗? 问题答案: 是的:使用ArrayList。 在Java中,“普通”数组是固定大小的。您必须给它们一个尺寸,并且不能扩展或收缩它们。要更改大小,您必须创建一个新数组并复制所需的数据-这效率低下,给您带来痛苦。 幸运的是,有许多内置类可以实现通用的数据结构以及其他有用的工具。您需要检查Java 6 API的完
问题内容: 假设我有类,并且其中的类具有可读和可写的属性: 是否可以只使用该方法而只使用该方法? 问题答案: 不可以,无法分配每个类别的访问权限。 考虑将您的类分为单独的接口,以便每个类仅获得一个具有所需接口的对象。例如: 当然,这涉及安全性,但这应该使您朝正确的方向进行思考。