【问题标题】:jQuery each: Use a variable in a key namejQuery each:在键名中使用变量
【发布时间】:2016-12-09 14:35:13
【问题描述】:

我有一个函数可以通过 AJAX 以 JSON 格式检索一些数据,并且我正在执行 $.each 循环来处理数据。我现在正在做的事情是这样的:

$.each(result, function(i, field){
    window.localStorage[cumple1LAC] = field.cumple1LAC;
    window.localStorage[cumple2LAC] = field.cumple2LAC;
    window.localStorage[cumple3LAC] = field.cumple3LAC;
    window.localStorage[cumple4LAC] = field.cumple4LAC;
    window.localStorage[cumple5LAC] = field.cumple5LAC;
    ....
    ....
    ....
});

所以除了数字 id 之外,大多数键都是相同的。在使用检索到的数据时,我正在做这样的事情:

for (i=1;i<=numItems;i++){
    var cumple = window.localStorage['cumple'+i+'LAC'];
    $('input[name=cumple'+i+'LAC]').val([cumple]);
}

由于有很多项目,我想循环遍历 $.each 循环中的 id,以类似于我在 for 循环中所做的方式,以避免数百行代码(我已经编码了,但是在维护方面,这很麻烦)。有可能吗?我不想使用数字索引来访问检索到的数组中的数据,我想坚持键值对。

【问题讨论】:

  • 你试过了吗:window.localStorage["cumple" + i + "LAC"] = field["cumple" + i + "LAC"];
  • 如果您要这样存储它们,为什么还要麻烦cumpleXLAC?只需按索引将它们存储在单个数组中
  • 由于您似乎一直在访问所有值,因此将数据转换为 Json 字符串并存储单个本地存储值。读取时反序列化以取回数据。
  • @freedomn-m 一定要试试!
  • @RoryMcCrossan 这是我公司内部应用程序的一部分,有很多数据,所以我不能只使用索引,我需要保留键:值对结构。它必须将值保存在 localStorage 中才能离线工作,因此不能选择数组。不过谢谢。

标签: jquery key each


【解决方案1】:

您可以将 field 对象视为字典并使用属性名称:

for (var key in field) {
  window.localStorage[key] = field[key];
}

JSfiddle: https://jsfiddle.net/TrueBlueAussie/rzth3hm5/

【讨论】:

    猜你喜欢
    • 2014-03-20
    • 2012-09-24
    • 2018-12-13
    • 1970-01-01
    • 2015-06-20
    • 2017-05-25
    • 2015-05-14
    • 2013-02-23
    • 1970-01-01
    相关资源
    最近更新 更多