小编kno*_*t22的帖子

执行数组中列出的方法

我有一个类,其属性和方法类似于下面显示的代码,只是更复杂.我们的想法是在调度数组中调用一个元素,然后为该元素列出的方法将按列出的顺序执行.我坚持如何获取执行方法(请参阅名为execute()的方法).这甚至可能吗?

请注意,在构造函数中调用setDispatch(),该代码未在下面的代码中显示.

// attribute
private $_dispatch = [];

// methods
public function execute()
{
  $dispatch = $this->getDispatch();
  // NEED LOGIC HERE THAT EXECUTES METHODS LISTED IN $dispatch['A']
}

private function setDispatch()
{
  $this->_dispatch = [
    'A' => [
        'method1',
        'method2',
        'method3'
    ],
    'B' => [
        'method4',
        'method3',
        'method1'
    ]
  ];
}
  
private function getDispatch()
{
  return $this->_dispatch;
}

private function method1()
{
  //do something
}

private function method2()
{
  //do something
}

private function method3()
{
  //do something
}

private …
Run Code Online (Sandbox Code Playgroud)

php

3
推荐指数
1
解决办法
40
查看次数

如何从字符串中删除所有空格?

我在使用字符列联接2个表的T-SQL查询时遇到困难。我怀疑有一些空格差异会导致问题,但无法找到它们。为了检验该理论,我想从连接列中除去所有空格,看看是否可以解决问题。不幸的是,我一直坚持如何删除T-SQL字符串中的所有空格。这是一个简单的示例,显示了我尝试过的内容(请参见测试列):

select
str,
test1 = replace(str, '\\s+' , ''),
test2 = replace(str, '[\s]*' , '')
from 
(
  values
  (''),
  (' '),
  (' xyz'),
  ('abc '),
  ('hello world')
) d (str);
Run Code Online (Sandbox Code Playgroud)

有没有办法使它在T-SQL中工作?

澄清:通过空格,我的意思是剔除以下所有内容:

\s         white space (space, \r, \n, \t, \v, \f)
' '        space
\t         (horizontal) tab
\v         vertical tab
\b         backspace
\r         carriage return
\n         newline
\f         form feed
\u00a0     non-breaking space
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

3
推荐指数
3
解决办法
9281
查看次数

使用 PowerShell 过滤具有多个条件的 CSV 文件

以下是 CSV 文件中的一小部分数据示例,需要对其进行过滤以删除包含 Branch 102 或名称等于 Admin 的所有行。

数据源.csv

branch,ID,name
102,11056,Jones
103,11057,Henry
102,22000,Admin
103,22001,Admin
102,22002,White
103,22003,George
Run Code Online (Sandbox Code Playgroud)

这是我的 PowerShell 脚本 demo.ps1 的第一个版本,可以运行 -

$path = "C:\users\knot22\PowerShell"

Import-CSV "$($path)\DataSource.csv" | Where Branch -NotLike '*102*' | Where Name -NotLike '*Admin*' |
Export-CSV "$($path)\DataTarget.csv" -NoTypeInformation -UseQuotes Never
Run Code Online (Sandbox Code Playgroud)

DataTarget.csv 的输出结果是 -

branch,ID,name
103,11057,Henry
103,22003,George
Run Code Online (Sandbox Code Playgroud)

但是,我想修改 demo.ps1 以便条件位于单个Where块中。我试过这个

$path = "C:\users\knot22\PowerShell"

Import-CSV "$($path)\DataSource.csv" | Where Branch -NotLike '*102*' -or Name -NotLike '*Admin*' |
Export-CSV "$($path)\DataTarget.csv" -NoTypeInformation -UseQuotes Never
Run Code Online (Sandbox Code Playgroud)

但这会导致错误

“无法绑定参数,因为多次指定参数“NotLike”。要为可以接受多个值的参数提供多个值,请使用数组语法。例如,“-参数 value1,value2,value3”。

此错误消息意味着多个条件适用于一个参数。在上面的用例中,多个条件适用于不同的参数。

有没有办法修改 demo.ps1 …

csv powershell

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

在Powershell脚本结束时打开日志文件

我有一个写入日志文件(log.txt)的Powershell脚本.在脚本末尾可以使用哪些命令在计算机上自动打开此日志文件?

powershell

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

Vue 中的对象数组的过滤和排序

我正在尝试在 Vue 中创建一个基于对象数组的过滤和排序计算,但还没有弄清楚如何让它工作。该项目可以访问 vue-filter 库。

以下是相关代码片段:
在脚本标签中 -

export default {
    computed: {
        filteredOfficialScenarios() {
            return [
                {"scenarioName": "scenario 1", "created": "2020-01-01T10:30:00"},
                {"scenarioName": "scenario 2", "created": "2019-01-01T09:15:00"},
                {"scenarioName": "scenario 3", "created": "2020-01-15T11:00:00"},
                {"scenarioName": "scenario 4", "created": "2018-01-31T11:00:00"},
                {"scenarioName": "scenario 5", "created": "2019-01-31T11:00:00"}
            ];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在 HTML 中 -

<ul>
    <li v-for="officialScenario in filteredOfficialScenarios" v-bind:key="officialScenario.scenarioName">{{officialScenario}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

只有创建时间 > 2019-01-01 的场景才应该出现在最终输出中,并且最终输出将按创建日期降序排序。

我尝试分别找出排序和过滤,但都没有起作用,更不用说弄清楚如何将它们组合起来以便它们同时发生。这是已尝试过的方法,但无济于事 -
用于排序 -

computed: {
    filteredOfficialScenarios() {
        return [
            {"scenarioName": "scenario 1", "created": "2020-01-01T10:30:00"},
            {"scenarioName": "scenario 2", "created": …
Run Code Online (Sandbox Code Playgroud)

vue.js

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

如何在 ES6 中相乘对象值并保留它们的键

我有以下包含转换因子的对象:

  const convertToYards =
  {
    "feet": 3,
    "meters": 0.9144,
    "yards": 1
  }
Run Code Online (Sandbox Code Playgroud)

然后有一个变量保存一个数字,如下所示: const maximumYards = 500;

我试图找出一种方法将所有值乘以convertToYards数字,maximumYards以便创建一个新对象,如下所示:

  const maximums =
  {
    "feet": 1500,
    "meters": 457.2,
    "yards": 500
  }
Run Code Online (Sandbox Code Playgroud)

我试过这个

const maximums = Object.values(convertToYards).map(o => o * maximumYards);
Run Code Online (Sandbox Code Playgroud)

但这会创建一个数组而不是一个对象,因此它不会携带原始的键名称。应该如何修改以获得所需的输出?

javascript

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

重构基于键/值对的值进行过滤的代码

我有以下代码,它按预期工作 - 它正确过滤掉值为 null、false 的键/值对,并返回一个带有其他键/值对的对象。但是,它相当冗长,我想知道是否有办法简化它。

const settings = {
    distance: null,
    length: 23,
    weight: null,
    isActive: false,
    isRound: true
}

const data = {};
Object.entries(settings)
.filter(([, value]) => value !== null)
.filter(([, value]) => value !== false)
.forEach(([key, value]) => (data[key] = value));
      
console.log(data);
Run Code Online (Sandbox Code Playgroud)

javascript

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

在32位计算机上安装64位Visual Studio 2013 Professional

如果我尝试在32位计算机上安装64位版本的Visual Studio 2013 Professional会发生什么?如果不知道会发生什么,我不想尝试这样做.

visual-studio-2013

-3
推荐指数
1
解决办法
6885
查看次数