javascript - 如何将一个 javascript 数组映射到另一个 javascript 数组

标签 javascript arrays

我在 JavaScript 中有一个构造函数,它包含 2 个属性 KeyValues array:

function Test(key, values) {
    this.Key = key;
    this.Values = values.map(values);
}

然后我创建了一组测试对象:

 var testObjectArray = [];
 testObjectArray.push(new Test(1, ['a1','b1']), new Test(2, ['a1','b2']));

现在我想将 testObjectArray 映射到单个 key-value 对数组,类似于:

[
    { "Key" : "1", "Value" : "a1" },
    { "Key" : "1", "Value" : "b1" },
    { "Key" : "2", "Value" : "a2" },
    { "Key" : "2", "Value" : "b2" },
]

如何使用数组的 map 函数实现此目的?

最佳答案

我猜你误解了 map()。这是一个非常简单的例子:

a = [1, 2, 3]
b = a.map(function (i) { return i + 1 })
// => [2, 3, 4]

这是 map 的 MDN 文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map .所以你应该重新考虑 map 在你的情况下的使用。顺便说一句 - 您的示例不起作用,因为值不是函数。

这是一个可能的解决方案:

res = [];
a = [['a1','b1'],['a1','b2']];

for (var i = 0; i < a.length; ++i) {
  for(var j = 0; j < a[i].length; ++j) {
    res.push({"Key": i + 1 , "Value" : a[i][j]});
  }
}

关于javascript - 如何将一个 javascript 数组映射到另一个 javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13077318/

相关文章:

c - C中同一行的可变输入量

java - 数组有时无法按预期工作

javascript - 从现有 JSON 文件实例化新的 JavaScript 对象

javascript - 区 block 链如何隐藏其 HTML 源代码?

javascript - 单选按钮在 Vue.js 中无法正常工作

javascript - 带有 eventListener 的原型(prototype)内的 Array.from(..) 不起作用

javascript - 在链接后执行 "thanks_for_downloading.html"+ "Save file..."的标准方法?

javascript - 获取/隐藏类中的第 N 个元素

python - Numpy 数组元素与 Float64 的比较

c# - Ref 参数返回未知大小的数组。如何处理?