JavaScript - 按名称设置对象键

标签 javascript object key

我有一个输入 JS 函数的实时名称源,我想创建一个对象,例如:

var renderObj= {
{"name": "test1", "size": 3938},
{"name": "test2", "size": 3812},
{"name": "test3", "size": 6714}
};

所以 renderObj 开始时是空的。每次输入名称时,我都需要检查它是否存在于对象中。如果是,则更新大小。

谁能给点建议吗?

最佳答案

对象中不能有未命名的项。使用数组代替:

var renderObj = [
  {"name": "test1", "size": 3938},
  {"name": "test2", "size": 3812},
  {"name": "test3", "size": 6714}
];

循环遍历数组以检查名称是否存在:

var index = -1;
for (var i = 0; i < renderObj.Length; i++) {
  if (renderObj[i].name == name) {
    index = i;
    break;
  }
}

现在检查结果。我假设您想要添加一个对象(如果该名称尚不存在)。您没有说明您希望如何更新大小,因此我假设您想将新值添加到之前的值中:

if (index == -1) {
  renderObj.push({ name: name, size: size });
} else {
  renderObj[index].size += size;
}

关于JavaScript - 按名称设置对象键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10480959/

相关文章:

perl - 为什么 Autovivification 发生在 keys() 而不是 %{..} ?

javascript - 在angularjs中设置下拉列表的选定值

javascript - 将 DOM 元素移动到父级元素的顶部和所选元素之后

javascript - 如何将 CSS 翻译添加到现有翻译中?

c# - 有没有办法通过脚本将对象导出到包中?

javascript - JSON解码: Mixed types - not valid syntax error

javascript - AngularJs ngdocs : annotate that a method returns a promise

Javascript - 根据前缀重构字符串数组

C#在游戏应用程序中保持关键

php - 检查两个数组是否仅包含相同的键