javascript - 我可以使用 Array.prototype.map 的模数来每 3 个索引插入新行吗?
问题描述
我正在尝试学习 es6 并使用 pokemon API。myRoute = ' https://pokeapi.co/api/v2/ability/144/ ';
const arrObservable = this._http.get(newurl);
arrObservable.subscribe(
(data) => {
const pokeString = data.pokemon.map( ( { pokemon }: obj ) => pokemon.name );
console.log(`There are ${data.pokemon.length} pokemon with the ${data.name} ability: ${pokeString}`);
})
输出:
有 19 个具有再生能力的口袋妖怪:slowpoke、slowbro、tangela、slowking、corsola、ho-oh、tangrowth、audino、solosis、duosion、reuniclus、foongus、amoonguss、alomomola、mienfoo、mienshao、mareanie、toxapex、tornadus-therian
我得到了正确的结果,它只是在控制台中看起来有点恶心,所以我想知道是否有办法在仍然使用 .map() 函数的同时每隔几行添加一个 '\n' ?
解决方案
使用.map
后,用逗号连接,然后.replace
在结果字符串上使用以用这 3 个单词和逗号加上换行符替换用逗号分隔的 3 个单词的实例。这样,您pokeString
实际上将是一个字符串:
const pokeString = data.pokemon
.map( ( { pokemon }: obj ) => pokemon.name )
.join(',')
.replace(/[^,]+,[^,]+,[^,]+,/g, '$&\n');
const names = ['slowpoke','slowbro','tangela','slowking','corsola','ho-oh','tangrowth','audino','solosis','duosion','reuniclus','foongus','amoonguss','alomomola','mienfoo','mienshao','mareanie','toxapex','tornadus-therian'];
const pokeString = names
.join(',')
.replace(/[^,]+,[^,]+,[^,]+,/g, '$&\n');
console.log(pokeString);
推荐阅读
- r - 如何从 R 中的十六进制值的数据框中绘制彩色图像?
- three.js - Three.js ligthing 的凹陷区域比表面更亮
- html - Ant-Design 的 `Popover` 在 `content` 足够大时会出现锯齿,如何解决?
- javascript - 接口中的“字符串”类型不存在属性“过滤器”
- sparql - Wikidata:如何通过 SPARQL 查询“官方名称”(P1448)的“语言”?
- javascript - 如何通过 Github API 将内容上传到隐藏文件夹名称?
- amazon-web-services - Dockerfile: COPY static Swagger no such file or directory 错误
- python - np.where 条件选择奇数元素,其中条件指定选择偶数元素
- javascript - npm-config 环境变量
- angular - ngClass 的角度动态变量