const template = {
example: {
simple: ['Hey', 'Origami'],
extra: ['Its me', 'Dotcom']
}
}我想将template.example.simple和template.example.extra的每个元素连接在一起。
因此,结果将是:
['Hey', 'Origami', 'Hey Its me', 'Hey Dotcom', 'Origami Its me', 'Origami Dotcom']
为了做到这一点,我现在要做的是:
const template = {
example: {
simple: ['Hey', 'Origami'],
extra: ['Its me', 'Dotcom']
}
}
const example = template.example.simple;
template.example.simple.forEach((s) => {
let extra = s;
template.example.extra.forEach((a) => {
extra += ` ${a}`;
example.push(extra);
extra = s;
});
});
console.log(example);
//example = ['Hey', 'Origami', 'Hey Its me', 'Hey Dotcom', 'Origami Its me', 'Origami Dotcom']
所以我的问题是,如果有一个更简单的方法来实现这一点,你将如何改进这一点?
发布于 2021-08-20 08:06:42
简单是一个相对的术语。我不认为这个方法更简单/更容易阅读,但是为了给出替代方案,这个衬垫应该能做到这一点。它使用map从simple中选择原始值,并使用一个额外的映射将simple和extra组合在一起(以及扩展运算符...将它们压平)
const template = {
example: {
simple: ['Hey', 'Origami'],
extra: ['Its me', 'Dotcom']
}
};
const example = Array.prototype.concat(...template.example.simple.map(p=>[p,...template.example.extra.map(e=>p + ' ' + e)]));
console.log(example);
发布于 2021-08-20 07:44:05
您可以使用Array.prototype.concat()将两个列表合并为一个。
在您的代码中,它应该类似于:
const newValues = template.example.simple.concat(template.example.extra);这里您可以找到文档和不同的使用示例。
https://stackoverflow.com/questions/68858503
复制相似问题