javascript - 在每次地图迭代的开头添加对象
javascript - add object at the beginning on each map iteration
所以,假设我有这个:
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' }
];
如果我这样做:
var officersIds = officers.map(x => [x.name, x.lastName]);
officersIds
的结果将是这样的:
[ "Captain", "Piett" ], [ "General", "Veers" ], [ "Admiral", "Ozzel" ], [ "Commander", "Jerjerrod" ]
对吗?
所以,我需要做的是在每次地图迭代中放置一个对象,这样输出现在就是这样的,例如:
[["x", "y"], [ "Captain", "Piett" ]],
[["x", "y"], [ "General", "Veers" ]],
[["x", "y"], [ "Admiral", "Ozzel" ]],
[["x", "y"], [ "Commander", "Jerjerrod" ]]
为什么我需要这个?最好不要问 ;) 但这是一个复杂的问题,如果你能帮助我解决这个简单的问题,我可以将你的解决方案转移到我的复杂问题上。
重要提示:有没有办法在一行中完成此操作?
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' },
];
officers.unshift({ name: x, lastName: y });
var officersIds = officers.map(x => [x.name, x.lastName]);
或者
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' },
];
var officersIds = officers.map(x => [x.name, x.lastName]);
officersIds.unshift(["x", "y" ]);
在 officers
上使用地图。
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' }
];
var officersIds = officers.map(x => [["x", "y"], [x.name, x.lastName]]);
console.log(officersIds);
如果您只想将 ['x', 'y']
添加到数组的开头,您可以使用 spread operator 使其成为一行:
var officersIds = [['x', 'y'], ...officers.map(x => [x.name, x.lastName])];
请参阅下面的概念验证:
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' }
];
var officersIds = [['x', 'y'], ...officers.map(x => [x.name, x.lastName])];
console.log(officersIds);
但是,如果您想将 ['x', 'y']
添加到数组中的每个项目,那么您应该改为这样做:
var officersIds = officers.map(x => [['x', 'y'], [x.name, x.lastName]]);
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' }
];
var officersIds = officers.map(x => [['x', 'y'], [x.name, x.lastName]]);
console.log(officersIds);
您可以将需要的部分添加到映射函数中。
var officers = [{ id: 20, name: 'Captain', lastName: 'Piett' }, { id: 24, name: 'General', lastName: 'Veers' }, { id: 56, name: 'Admiral', lastName: 'Ozzel' }, { id: 88, name: 'Commander', lastName: 'Jerjerrod' }],
officersIds = officers.map(x => [["x", "y"], [x.name, x.lastName]]);
console.log(officersIds);
所以,假设我有这个:
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' }
];
如果我这样做:
var officersIds = officers.map(x => [x.name, x.lastName]);
officersIds
的结果将是这样的:
[ "Captain", "Piett" ], [ "General", "Veers" ], [ "Admiral", "Ozzel" ], [ "Commander", "Jerjerrod" ]
对吗?
所以,我需要做的是在每次地图迭代中放置一个对象,这样输出现在就是这样的,例如:
[["x", "y"], [ "Captain", "Piett" ]],
[["x", "y"], [ "General", "Veers" ]],
[["x", "y"], [ "Admiral", "Ozzel" ]],
[["x", "y"], [ "Commander", "Jerjerrod" ]]
为什么我需要这个?最好不要问 ;) 但这是一个复杂的问题,如果你能帮助我解决这个简单的问题,我可以将你的解决方案转移到我的复杂问题上。
重要提示:有没有办法在一行中完成此操作?
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' },
];
officers.unshift({ name: x, lastName: y });
var officersIds = officers.map(x => [x.name, x.lastName]);
或者
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' },
];
var officersIds = officers.map(x => [x.name, x.lastName]);
officersIds.unshift(["x", "y" ]);
在 officers
上使用地图。
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' }
];
var officersIds = officers.map(x => [["x", "y"], [x.name, x.lastName]]);
console.log(officersIds);
如果您只想将 ['x', 'y']
添加到数组的开头,您可以使用 spread operator 使其成为一行:
var officersIds = [['x', 'y'], ...officers.map(x => [x.name, x.lastName])];
请参阅下面的概念验证:
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' }
];
var officersIds = [['x', 'y'], ...officers.map(x => [x.name, x.lastName])];
console.log(officersIds);
但是,如果您想将 ['x', 'y']
添加到数组中的每个项目,那么您应该改为这样做:
var officersIds = officers.map(x => [['x', 'y'], [x.name, x.lastName]]);
var officers = [
{ id: 20, name: 'Captain', lastName: 'Piett' },
{ id: 24, name: 'General', lastName: 'Veers' },
{ id: 56, name: 'Admiral', lastName: 'Ozzel' },
{ id: 88, name: 'Commander', lastName: 'Jerjerrod' }
];
var officersIds = officers.map(x => [['x', 'y'], [x.name, x.lastName]]);
console.log(officersIds);
您可以将需要的部分添加到映射函数中。
var officers = [{ id: 20, name: 'Captain', lastName: 'Piett' }, { id: 24, name: 'General', lastName: 'Veers' }, { id: 56, name: 'Admiral', lastName: 'Ozzel' }, { id: 88, name: 'Commander', lastName: 'Jerjerrod' }],
officersIds = officers.map(x => [["x", "y"], [x.name, x.lastName]]);
console.log(officersIds);