试图访问作为字符串的对象文字键

trying to access object literal key that is a string

本文关键字:对象 文字 字符串 访问      更新时间:2023-09-26

我试图在对象文字中使用一个字符串作为键,然后在一个函数中使用该字符串,该函数将该字符串添加到HTML li元素中的数据属性中。其基本思想是创建一个用户id,然后获取特定用户进行更新/删除。创建部件工作正常。

首先,我需要把信息输入到我的li元素中,这样点击就能得到我想要的id。下面的代码可以工作,但这只是因为我在对象中包含了id。在对象内部复制字符串(userguid键)只是为了使用它,这似乎是愚蠢和错误的

users = {
  "0c7270bd-38e8-4db2-ae92-244de019c543": {
    datecreated: "2013-10-15",
    email: "jimmy@example.com",
    firstname: "Jimmy",
    lastname: "Smith",
    username: "jimmysmith",
    password: "foobar",
    notify: "barbour@4j.lane.edu",
    userguid: "0c7270bd-38e8-4db2-ae92-244de019c543"
  },
  "0c7270bd-38e8-4db2-ae92-244de019mju7": {
    datecreated: "2013-10-16",
    email: "mary@example.com",
    firstname: "Mary",
    lastname: "Jones",
    username: "maryjones",
    password: "foobar2",
    notify: "barbour@4j.lane.edu",
    userguid: "0c7270bd-38e8-4db2-ae92-244de019mju7"
  }
};

使用它的功能:

displayUserList = function() {
  var newHTML;
  users = JSON.parse(localStorage["users"]);
  newHTML = [];
  $.each(users, function(index, user) {
    return newHTML.push('<li data-userguid="' + user.userguid + '" data-firstname="' + user.firstname + '"><span class="userfullname">' + user.firstname + ' ' + user.lastname + '</span></li>');
  });
  /*
    jquery css going on here
  */
};

我想从对象内部获取userguid。我尝试过使用各种方法来定位该字符串并将其引入html,但都不起作用。我还希望能够针对它进行更新和删除。

我试过

user      user[user]   user.user

我开始觉得我错过了使用对象文字的基本规则,但我在搜索中没有找到它。

谢谢你的帮助。

Charlie Magee

使用$.each迭代对象时,index参数会接收密钥,因此可以执行以下操作:

newHTML.push('<li data-userguid="' + index + '" data-firstname="' + user.firstname + '"><span class="userfullname">' + user.firstname + ' ' + user.lastname + '</span></li>');

此语句不需要return$.each()对返回值所做的唯一一件事就是测试它的===false——如果是,则循环结束。