javascript - 如何在 JavaScript 中解决这个特定的算法?
问题描述
给定这个数组: arr = [ '00011100', '00000001', '00101101', '11111111' ];
如果元素在数组中的偶数位置,我必须从该元素中删除所有具有偶数索引的字符,反之亦然。例子:
第一个元素在偶数位置: arr[0] = '0 0 0 1 1 1 0 0 '
第二个元素位于奇数位置: arr[1] = ' 0 0 0 0 0 0 0 1';
我必须删除这些字符并将它们作为连接字符串返回。
整个数组的输出 // 0110 0000 0011 1111
请帮我解决这个任务:) 提前谢谢你!
let enigma = "";
for(let i = 0; i < arr.length; i++){
let index = arr[i];
let evenStr = "";
let oddStr = "";
if(index % 2 === 0) {
for(let j = 1; j < index.length; j+=2) {
evenStr += index[j];
} enigma += evenStr;
} else if(index % 2 !== 0) {
for(let x = 1; x < index.length; x+=2) {
oddStr += index[x];
} enigma += oddStr;
}
}
console.log(enigma) //0110000100111111;
到目前为止,这是我的代码,但我收到的输出略有不同:/
解决方案
这是您的问题的潜在解决方案。
使用减少()
const removeOddIndex = ( str ) => {
return str.split("").filter( ( element, index ) => index % 2).join("");
}
const removeEvenIndex = ( str ) => {
return str.split("").filter( ( element, index ) => !( index % 2 )).join("");
}
const array = [ '00011100', '00000001', '00101101', '11111111' ];
const result = array.reduce( ( acc, cur, index ) => {
if( index % 2 ) {
acc[index] = removeEvenIndex( cur );
} else {
acc[index] = removeOddIndex( cur );
}
return acc;
}, array).join("")
console.log(result)
使用地图()
const removeOddIndex = ( str ) => {
return str.split("").filter( ( element, index ) => index % 2).join("");
}
const removeEvenIndex = ( str ) => {
return str.split("").filter( ( element, index ) => !( index % 2 )).join("");
}
const array = [ '00011100', '00000001', '00101101', '11111111' ];
const result = array.map( ( element, index ) => {
return index % 2 ? removeEvenIndex( element ) : removeOddIndex( element )
} ).join("");
console.log(result)
推荐阅读
- bash - 剪切十六进制地址而不将它们扩展为文本
- spring - Spring 集成 - 使用 afterCommit 表达式将文件写入已处理的目录
- php - 来自 Vue.js App (Axios) 的 2 个同时 API 调用随机失败但在 Postman 中工作
- php - PHP显示替换字符
- python - 在python中反转图像颜色
- python-3.x - 使用不同数量的过滤器参数构造 SQLite 查询的正确方法
- haskell - Vigenere Cipher 未正确编码
- azure - 如何从 Azure 数据工厂的 blob 存储中解压缩 .gz 文件?
- react-native - 使用 Lottie 的 React Native Flatlist 自定义刷新控件出现故障
- arrays - 在数组及其索引中找到最小值 - 完全是初学者,因此非常感谢任何帮助