如何将数组值从一个数组映射到另一个数组 JavaScript?
How to Map Array values from one Array to Another Array JavaScript?
这是我的代码。我想将 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
。
有人可以帮忙吗?我对 Map 函数还很陌生。
我想打印这个结果。
payload["do"]=10
payload["f1"]=20
payload["f2"]=30
不确定你想用线条实现什么:
payload["rt"];
payload["do"];
payload["f1"];
如果您想在 reformatterArray 中创建新键,请尝试分配一个值,例如。
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: ""}
您正在为 payload 赋值,但得到的是 payload 的值。
var kvArray = [{key: 1, value: 10},
{key: 2, value: 20},
{key: 3, value: 30}];
var reformattedArray = kvArray.map(obj =>{
var payload = {};
payload[obj.key] = obj.value;
console.log(payload[obj.key]);
return payload;
});
您正在将数据映射到 reformattedArray ,因此您需要调用 reformattedArray 来获取值,
var kvArray = [{key: 1, value: 10},
{key: 2, value: 20},
{key: 3, value: 30}];
var reformattedArray = kvArray.map(obj =>{
var payload = {};
payload[obj.key] = obj.value;
return payload;
});
console.log(reformattedArray);
还有你下面的代码没用
payload["rt"];
payload["do"];
payload["f1"];
我不确定你想要什么格式。
试试下面的代码:
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}
]
有关详细信息,请参阅此 link
你可以使用 destructuring assignment and build a new object with computed property names.
对于最终的键,您可以使用对象 keys
以及给定对象的键的对应键。
var kvArray = [{ key: 1, value: 10 }, { key: 2, value: 20 }, { key: 3, value: 30 }],
keys = { 1: 'rt', 2: 'do', 3: 'fi' },
result = kvArray.map(({ key, value }) => ({ [keys[key]]: value }));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
var kvArray = [{key: 1, value: 10},
{key: 2, value: 20},
{key: 3, value: 30}];
var reformattedArray = kvArray.map(obj =>{
var payload = {};
const mapping = [null, 'rt', 'do', 'f1'];
const key = mapping[obj.key];
payload[key] = obj.value;
return payload;
});
console.log(reformattedArray);
这是我的代码。我想将 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
。
有人可以帮忙吗?我对 Map 函数还很陌生。
我想打印这个结果。
payload["do"]=10
payload["f1"]=20
payload["f2"]=30
不确定你想用线条实现什么:
payload["rt"];
payload["do"];
payload["f1"];
如果您想在 reformatterArray 中创建新键,请尝试分配一个值,例如。
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: ""}
您正在为 payload 赋值,但得到的是 payload 的值。
var kvArray = [{key: 1, value: 10},
{key: 2, value: 20},
{key: 3, value: 30}];
var reformattedArray = kvArray.map(obj =>{
var payload = {};
payload[obj.key] = obj.value;
console.log(payload[obj.key]);
return payload;
});
您正在将数据映射到 reformattedArray ,因此您需要调用 reformattedArray 来获取值,
var kvArray = [{key: 1, value: 10},
{key: 2, value: 20},
{key: 3, value: 30}];
var reformattedArray = kvArray.map(obj =>{
var payload = {};
payload[obj.key] = obj.value;
return payload;
});
console.log(reformattedArray);
还有你下面的代码没用
payload["rt"]; payload["do"]; payload["f1"];
我不确定你想要什么格式。
试试下面的代码:
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}
]
有关详细信息,请参阅此 link
你可以使用 destructuring assignment and build a new object with computed property names.
对于最终的键,您可以使用对象 keys
以及给定对象的键的对应键。
var kvArray = [{ key: 1, value: 10 }, { key: 2, value: 20 }, { key: 3, value: 30 }],
keys = { 1: 'rt', 2: 'do', 3: 'fi' },
result = kvArray.map(({ key, value }) => ({ [keys[key]]: value }));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
var kvArray = [{key: 1, value: 10},
{key: 2, value: 20},
{key: 3, value: 30}];
var reformattedArray = kvArray.map(obj =>{
var payload = {};
const mapping = [null, 'rt', 'do', 'f1'];
const key = mapping[obj.key];
payload[key] = obj.value;
return payload;
});
console.log(reformattedArray);