Javascript对象保留包含旧数据
Javascript object keep contain the old data
>我正在尝试根据状态选择从 JSON 字符串中过滤结果。我将更深入地解释。关于下面的代码,jsonstring包含整个javascript对象。我通过 grep 函数过滤状态,然后将结果添加到主对象(jsonstring)中,这样我就可以获得具有新过滤状态的整个 javascript 对象。但是每次调用此下拉列表时,我都会获得上次更新的javascript对象,但是每次调用此函数时我都想要原始jsonstring。
function dropdownchange(jsonstring)
{
var e = document.getElementById("documents_filter");
var svalue = e.options[e.selectedIndex].value;
if(svalue == "In Progress")
{
var docstatusfilter;
docstatusfilter = $.grep(jsonstring.Apps.statuslist , function(el, i) {
return el.DOCUMENT_STATUS === "In Progress"
});
jsonstring.Apps.statuslist = docstatusfilter;
}
if(svalue == "Auth (Verified)")
{
var authstatus;
authstatus = $.grep(jsonstring.Apps.statuslist , function(el, i) {
return el.DOCUMENT_STATUS === "Auth (Verified)"
});
jsonstring.Apps.statuslist = authstatus;
}
}
当这个函数第一次调用时,它工作得很好,但是一旦我更改下拉列表,它就会包含jsonstring中的上一条记录,但是我希望每次调用此函数时都使用原始jsonstring。
有人知道吗?
谢谢
您需要做的就是将 jsonstring 复制到另一个对象中,并在函数中使用该对象。这是一个将克隆对象的函数 -
function clone(obj) {
var copy = jQuery.extend(true, {}, obj);
return copy;
}
现在像这样调用这个函数:
function dropdownchange(jsonstring)
{
var newJsonString = clone(jsonstring);
var e = document.getElementById("documents_filter");
var svalue = e.options[e.selectedIndex].value;
......
....
只需在函数中使用newJsonString
而不是jsonstring
。
将原始字符串存储在单独的变量中。使用原始字符串变量作为函数的输入,然后将结果值设置为其他变量。
相关文章:
- Json数据包含日期和时间格式
- 数据绑定:'系统Char'不包含名为'xxxxx'
- 清除数据并将旧值附加到文本框中
- 如何创建一个包含许多数组和数据的json对象
- 使用jQuery发布的AJAX数据包含引号
- 选项中包含数据的自定义标记
- AJAX数据包含一个或多个单词.
- 将.js文件中的数据包含到链接中
- Javascript对象保留包含旧数据
- 主干 - 实例化视图包含旧数据
- 我如何采用两个日期选择器并使用我的开始和结束日期对数据进行排序,但 json 数据包含 5/12/2016,而角度仅排序
- 剪贴数据包含javascript
- 如何将数据转换为json类型,其中数据包含变量
- 天气预报,使用angularjs和openweathermap将数据从旧数组推送到新数组中
- DOM在页面更新后包含旧元素
- 获取JQuery数据-包含有空格的值
- 如果数据包含URL, Javascript将无法解析JSON
- 如何使用jsweet::is-my-json-valid糖果验证JSON数据(包含完整的错误报告)?
- 如何避免当数据包含'@'登录显示标签的链接
- 当数据包含连续问号时,jQuery $.ajax()无法理解的行为