Javascript 如何将数组值从一个数组映射到另一个数组?

Javascript 如何将数组值从一个数组映射到另一个数组?,javascript,arrays,map-function,Javascript,Arrays,Map Function,这是我的密码。我想将kvArray的值传递给第二个数组 var kvArray = [{key: 1, value: 10}, {key: 2, value: 20}, {key: 3, value: 30}]; var reformattedArray = kvArray.map(obj => { var payload = {}; payload["rt"]; payload["do"]; pa

这是我的密码。我想将
kvArray
的值传递给第二个数组

var kvArray = [{key: 1, value: 10}, 
               {key: 2, value: 20}, 
               {key: 3, value: 30}];

var reformattedArray = kvArray.map(obj => { 
   var payload = {};
   payload["rt"];
   payload["do"];
   payload["f1"];
   payload[obj.key] = obj.value;
   console.log(payload["rt"]);
   return payload;
});
console.log
即将出现
undefined
。 有人能帮忙吗?我对映射函数相当陌生

我想打印这个结果

 payload["do"]=10
 payload["f1"]=20
 payload["f2"]=30

不确定您试图通过以下几行实现什么:

payload["rt"];
payload["do"];
payload["f1"];
如果要在Reformatterray中创建新键,请尝试指定一个值,例如

var kvArray = [{key: 1, value: 10}, 
           {key: 2, value: 20}, 
           {key: 3, value: 30}];
var reformattedArray = kvArray.map(obj =>{ 
   var payload = {};
   payload["rt"] = "";
   payload["do"]= "";
   payload["f1"]= "";
   payload[obj.key] = obj.value;
   console.log(payload["rt"]);
   return payload;
});

console.log(reformattedArray):
//result
0: {1: 10, rt: "", do: "", f1: ""}
1: {2: 20, rt: "", do: "", f1: ""}
2: {3: 30, rt: "", do: "", f1: ""}

您正在将值分配给有效负载,但正在获取有效负载的值

var kvArray=[{key:1,value:10},
{键:2,值:20},
{键:3,值:30}];
var reformattedArray=kvArray.map(obj=>{
var有效载荷={};
有效载荷[obj.key]=obj.value;
控制台日志(有效载荷[obj.key]);
返回有效载荷;

});您正在将数据映射到reformattedArray,因此需要触发reformattedArray以获取值

var kvArray=[{key:1,value:10},
{键:2,值:20},
{键:3,值:30}];
var reformattedArray=kvArray.map(obj=>{
var有效载荷={};
有效载荷[obj.key]=obj.value;
返回有效载荷;
});

console.log(重新格式化Darray)我不确定您想要什么格式

请尝试以下代码:

var kvArray = [{ key: 1, value: 10 },
  { key: 2, value: 20 },
  { key: 3, value: 30 }];
var reformattedArray = kvArray.map(obj => obj.value);
console.log(reformattedArray)
结果将是:

[ 10, 20, 30 ]
这个代码很好用

let kvArray = [{key: 1, value: 10},
           {key: 2, value: 20},
           {key: 3, value: 30}];

let reformattedArray = kvArray.map(obj =>{
   var payload = {};
   payload[obj.key] = obj.value;
   return payload;
});

console.log(reformattedArray)
上面的代码打印输出如下

[
  0: {1: 10}
  1: {2: 20}
  2: {3: 30}
]
有关详细信息,请参阅此

,您可以使用创建一个新对象

对于最后的关键点,可以使用对象
keys
,将关键点与给定对象的关键点对应起来

var kvArray=[{key:1,value:10},{key:2,value:20},{key:3,value:30}],
键={1:rt',2:do',3:fi'},
result=kvArray.map(({key,value})=>({[key[key]]:value}));
控制台日志(结果)
.as控制台包装{最大高度:100%!重要;顶部:0;}
var kvArray=[{key:1,value:10},
{键:2,值:20},
{键:3,值:30}];
var reformattedArray=kvArray.map(obj=>{
var有效载荷={};
常量映射=[null,'rt','do','f1'];
常量键=映射[obj.key];
有效载荷[键]=对象值;
返回有效载荷;
});

console.log(重新格式化Darray)当您在map函数中引用obj.key时,您正在分配有效负载[1]、有效负载[2]和有效负载[3]。因此,有效负载[“rt”]仍然未定义。您希望在有效负载[“rt”]中存储什么值?请同时添加所需的结果。@NullPointer我希望有效负载[“rt”]=10.btw,很不清楚所需的键是否取决于索引或键值。我已经定义了数组有效负载的键。我希望这个输出有效载荷[“rt”]=10。像这样。这很有帮助:)。非常感谢你。为了将“rt”和“do”的键传递给有效负载,最好通过在另一个数组中声明它们来映射它们。这很好:)
const-mapping=[null,'rt','do','f1']什么是空值?