【问题标题】:Make key value pair from two different array [duplicate]从两个不同的数组制作键值对[重复]
【发布时间】:2021-07-13 20:36:00
【问题描述】:

我正在使用本地存储来获取字符串数组,

第一个值attrIds如下,

var attrIds = localStorage.getItem('attributeids');
attrIds = JSON.parse(attrIds);

第二个值confOptions如下,

我想要这样的东西,

144: "5595"
93: "5487"

我尝试在循环内创建一个循环并尝试设置键和值,但它不起作用。我还尝试将单个 JSON 对象设置为键并将值设置为 '' 但无法进一步进行。

有人对此有任何想法吗?

【问题讨论】:

  • 您想将第一个数组中的每个值与同一索引中第二个数组的每个值映射吗?
  • 是的,正如我在我的问题中提到的那样
  • There's no such thing as a "JSON Object".getItem() 返回一个字符串。 attrIdsconfOptions 都是字符串数组。

标签: javascript json object


【解决方案1】:

使用 for 循环,您可以执行以下操作:

var attrIds = localStorage.getItem('attributeids');
attrIds = JSON.parse(attrIds);
confOptions = ["5595", "5487"]
const object = {};

for(let i=0; i<attrIds.length;i++)
object[attrIds[i]] = confOptions[i]

【讨论】:

  • 请用for循环添加完整的解决方案,非常感谢
【解决方案2】:

您可以使用简单的 for 循环、访问数组中的项目并将属性分配给空对象来完成此操作。

const keys = ['144', '93'];
const values = ['5595', '5487'];

const obj = {};
for (let i = 0; i < keys.length; i++) {
  obj[keys[i]] = values[i];
}

console.log(obj); // prints { 144: '5595', 93: '5487' }

【讨论】:

    【解决方案3】:

    创建一个嵌套数组,然后使用Object.fromEntries()

    const 
      a = ["144", "93"],
      b = ["5595", "5487"],
      c = Object.fromEntries(a.map((v, i) => [v, b[i]]));
    
    console.log(c);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 2018-06-15
      • 2021-08-07
      • 2023-03-15
      • 2017-09-14
      相关资源
      最近更新 更多