小编rem*_*soy的帖子

使用字符串路径从数组中删除元素

我有这样的阵列

$arr = [
   'baz' => [
      'foo' => [
         'boo' => 'whatever'
     ]
   ]
];
Run Code Online (Sandbox Code Playgroud)

无论如何使用字符串输入取消设置['boo']值?

这样的事情

    $str = 'baz->foo->boo';
    function array_unset($str, $arr) {

    // magic here

    unset($arr['baz']['foo']['boo']);
    return $arr;
    }
Run Code Online (Sandbox Code Playgroud)

这个答案非常棒,它是我脚本运行的第一部分.使用字符串路径设置嵌套数组数据 .但它不能逆转.PS eval()不是一个选项:(

php arrays unset

6
推荐指数
1
解决办法
809
查看次数

从字符串更改目录

这是问题所在。我有一个 bash 脚本,它从 php 脚本获取路径。但它不能将目录更改为返回路径;

function go_to_path
{
  path=$(php myscript)
  echo $path; # is totally okay, printing expected value 
  cd $path; # err -> no such file or directory. Directory is obviously exists
}
Run Code Online (Sandbox Code Playgroud)

那东西也不起作用

eval cd $path
echo $(cd $path)
cd "$path"
Run Code Online (Sandbox Code Playgroud)

我在 Windows 上通过 cygwin 运行 bash

bash cygwin cd path

6
推荐指数
1
解决办法
1596
查看次数

Ramda 与 FP 类型

最近我决定从 lodash 切换到 ramda,以使用功能方式来编写我的逻辑。我喜欢它!在对 FP 进行了一些广泛的挖掘之后,我发现它不仅与方便的纯/无点实用程序 (ramda) 有关,而且更多地与复杂的(至少对我而言)数学抽象(fantasy-land)有关。我没有全部了解,但Either 和Task 模式看起来非常方便。问题是我不确定如何将它与 ramda 实用程序合并。我知道 ramda-fantasy,但它不再维护。Ramda-fantasy 建议的库与 ramda-fantasy 的工作方式不同。有了关于 Monads/Monoids/Functors 类型的所有这些新信息,我完全迷失了。

例如,这个约定是什么?

Right('boo')
  .map(x => x + '!')
  .map(x => x.toUpperCase())

vs 

R.pipe(
  R.map(x => x + '!')
  R.map(x => x.toUpperCase())
)(Right('boo'))
Run Code Online (Sandbox Code Playgroud)

如果我决定一直切换到 Monads,我是否不需要 ramda?

javascript functional-programming ramda.js fantasyland ramda-fantasy

5
推荐指数
1
解决办法
76
查看次数

将对象拆分为2个数组javascript

我有一个这样的对象

 obj =   {
    'baz':1,
    'foo':7,
    'zap':12,
    'qax':15
    }
Run Code Online (Sandbox Code Playgroud)

我需要将它分成2个数组

arr1 = ['baz', 'foo', 'zap', 'qax']
arr2 = [1, 7, 12, 15]
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

0
推荐指数
2
解决办法
1万
查看次数

将 docker 容器端口绑定到路径

Docker 菜鸟在这里。已经使用 docker 容器设置了一个开发服务器。我能够运行一个基本的容器。例如

docker run --name node-test -it -v "$(pwd)":/src -p 3000:3000 node bash
Run Code Online (Sandbox Code Playgroud)

按预期工作。一旦我有很多小项目,我想绑定/侦听实际的 http localhost 路径而不是端口。类似的东西

docker run --name node-test -it -v "$(pwd)":/src -p 3000:80/node-test node bash
Run Code Online (Sandbox Code Playgroud)

是否可以?谢谢。

编辑。基本上我想输入localhost/node-test而不是localhost:3000在我的浏览器窗口中

http docker

0
推荐指数
1
解决办法
532
查看次数