如何动态地在 Jquery 中的字典中的单个键内添加多个值对?

How to add multiple value pairs inside a single key in a dictionary in Jquery dynamically?

我正在尝试为 Sharepoint 列表中的元数据添加一个新项目构建一个字典。我正在尝试动态地执行此操作,而不是对列的名称进行硬编码。

这是应构建的原始项目属性元数据。

itemProperties={"__metadata":{"type":"SP.Data.TestingListItem"},"fldname1":"Value1","fldname1":"Value2","fldname3":"value3"};

这是我目前所拥有的

var itemProperties={"__metadata":{"type":"SP.Data.TestingListItem"}};

I 运行 在这里循环直到 j 比方说 5;

itemProperties=itemProperties+'"'+favorite[j]+'"'+':'+'"'+cells[j]+'"'+','

//favorite has the column name and cells has the values for those columns

我尝试构建一个字符串并添加多个值,但它没有按预期工作。

itemProperties.push("Title":"AMA-424"); or 
itemProperties.append("Title":"AMA-424");**

我都试过了,但都无效。我 运行 没主意了。我尝试将整个内容构建为字符串,但创建列表项函数不会采用字符串。

非常感谢任何帮助或指导。

如果您有一个对象,您可以通过添加更多键/值对来添加它。这是这样做的:

var obj = {};
obj['myKey'] = "myValue";

考虑以下示例。

var itemProperties = {
  "__metadata": {
    "type": "SP.Data.TestingListItem"
  },
  "fldname1": "Value1",
  "fldname1": "Value2",
  "fldname3": "value3"
};

var favs = [
  "Title",
  "Feature",
  "Data"
];

var cells = [
  "AMA-242",
  "One",
  "abc"
];

for (var i = 0; i < favs.length; i++) {
  itemProperties[favs[i]] = cells[i];
}

console.log(itemProperties);

这是一个普通的 JavaScript 示例。现在,如果您想要一个 jQuery 示例,我建议您使用 $.extend().

Description: Merge the contents of two or more objects together into the first object.

查看更多:https://api.jquery.com/jquery.extend/

对于数组,这有点像 .push(),但对于对象。考虑以下因素。

$(function() {
  var itemProperties = {
    "__metadata": {
      "type": "SP.Data.TestingListItem"
    },
    "fldname1": "Value1",
    "fldname1": "Value2",
    "fldname3": "value3"
  };

  var favs = {
    title: "AMA-242",
    feature: "One",
    data: 123
  };

  $.extend(itemProperties, favs);

  console.log(itemProperties);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>