实现map
输入对象obj
和对应的key路径,输出最终的value.
const obj = {a: [{}, {a: 2}]}
const findStr = 'a[1].a'
function map(obj, ...str) {
let r = []
str.forEach((str) => {
const key = str.split(/\[|\]|\./)
r.push(key.reduce((obj, b) => b === '' ? obj : obj[b], obj))
})
return r
}
console.log(map(obj, findStr, findStr))
给定一个二维数组和一个word,查找是否在其中,可以上下左右移动
输入数组arr
, fxa
,output : true;
const arr = [
[ 'a', 'c', 'd', 'z' ],
[ 'x', 't', 'r', 'o' ],
[ 'f', 'i', 'w', 'o' ]
]
function find(arr, str) {
for( let i = 0; i < arr.length; i++ )
{
for( let j = 0; j < arr[i].length; j++ )
{
if (arr[i][j] === str[0]) {
if(f4 (i , j , 1)){
return true
}
}
}
}
function f4 (i , j , w) {
if (w >2) return true
if(j + 1 < 4 && arr[i][j + 1] == str[w] ) {
return f4 (i , j+1 , w+1)
}
if(j - 1 >= 0 && arr[i][j - 1] == str[w]) {
return f4 (i , j-1 , w+1)
}
if(i + 1 < 3 && arr[i + 1][j] == str[w]) {
return f4 (i +1 , j , w+1)
}
if(i - 1 >= 0 && arr[i - 1][j] == str[w]) {
return f4 (i -1 , j , w+1)
}
return false
}
return false
}
console.log(find(arr, 'fxa'))
- docker 原理 应用哪里
- 设计模式 门面 桥 ,装饰器应用场景
- 0号进程 是什么
- linux boot文件夹作用
- 查看nginx pid 命令
- git reset后,再回到之前新的commit
- mysql 查询 缓存设置
- express 路由原理 怎么优化
- php 用的版本 什么框架了解
- node 框架了解哪些
- mongodb 复制集
- gitlab 源码改造
- flv 视频转码源码
- 域名解析 A 和 rename区别
- 业务相关
2020/10/13
flex regexp {a:b:c{5}} add(1)(2)(3) promise.all sleep
angular vue双向绑定 ioc 前端路由实现 图片上传实现