javascript - 在数组内每个值的中间插入值
问题描述
我有一个数组的值['a', 'b', 'c', 'd', 'e']
现在我希望它成为一个具有它的值的对象所以我做了一些数组映射
const arrs = ['a', 'b', 'c', 'd', 'e']
let arrObj = arrs.map(arr => {
return {value: arr}
})
现在的arrObj
值为
[{value: 'a'}, {value: 'b'}, {value: 'c'}, {value: 'd'}, {value: 'e'}]
但我想要做的是在数组内的每个对象中间插入一个对象,该对象{operator: '+'}
的值arrObj
是
[{value: 'a'}, {operator: '+'}, {value: 'b'}, {operator: '+'}, {value: 'c'}, {operator: '+'}, {value: 'd'}, {operator: '+'}, {value: 'e'}]
现在,使用 javascript,如果我在 array.map() 中设置了 arrObj 的值,我该如何实现该功能?
解决方案
一种选择是将每个元素(但最后一个)映射到具有该元素的数组和另一个具有 的数组+
,然后展平:
const arrs = ['a', 'b', 'c', 'd', 'e'];
const transformed = arrs
.map((char, i) => (
i === arrs.length - 1
? [{ value: char }]
: [{ value: char }, { value: '+' }]
))
.flat();
console.log(transformed);
如果+
不会出现在输入数组中,那么您可以先加入+
,然后拆分:
const arrs = ['a', 'b', 'c', 'd', 'e'];
const output = arrs
.join('+')
.split('')
.map(value => ({ value }));
console.log(output);
推荐阅读
- ios - 如何在没有数组的 UITableView 中显示 UITableView Cell?
- python - 双 For 循环迭代。两个列表比较
- javascript - 在 vue.js 中检测键盘按钮并播放声音
- python - 安装 Hachoir 元数据时出错 |命令“python setup.py egg_info”失败,错误代码 1 in...\hachoir-metda
- docker - Laravel 黄昏在 gitlab 中使用 docker 进行测试 - 无法连接到 localhost 端口 9515:连接被拒绝
- angular - TypeScript getter/setter 中的部分
- javascript - Globalize.js - cldr.once 不是一个函数
- javascript - 将命名函数绑定到上下文
- c# - 如何防止查询字符串httpclient的双重编码?
- homebrew - Flutter 说没有安装 Brew