反转数组而不更改某些元素的位置JavaScript
我们需要编写一个包含一组文字的JavaScript函数。该函数应反转数组而不更改数组中存在的“#”的索引,如以下示例所示:
数组[18,-4,'#',0,8,'#',5]应该返回-
[5, 8, "#", 0, -4, "#", 18]
在此,数字应颠倒,但在保持相同索引的情况下应排除“#”。
示例
const arr = [18, -4, '#', 0, 8, '#', 5];
const arr1 = [18, -4, 0, '#', 8, '#', 5];
const specialReverse = (arr = []) => {
let removed = arr.reduce((acc, val, ind) => {
return val === '#' ? acc.concat(ind) : acc;
}, []);
let reversed = arr.filter(val => val !== '#').reverse();
removed.forEach(el => reversed.splice(el, 0, '#'));
return reversed;
};
console.log(specialReverse(arr));
console.log(specialReverse(arr1));输出结果
控制台中的输出将是-
[ 5, 8, '#', 0, -4, '#', 18 ] [ 5, 8, 0, '#', -4, '#', 18 ]
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短