小编Shi*_*rsz的帖子

有没有更好的方法从字符串中提取信息?

假设我有一个字符串数组,我需要来自它们的具体信息,这将是一种简单的方法吗?

假设数组是这样的:

let infoArr = [
  "1 Ben Howard 12/16/1988 apple",
  "2 James Smith 1/10/1999 orange",
  "3 Andy Bloss 10/25/1956 apple",
  "4 Carrie Walters 8/20/1975 peach",
  "5 Doug Jones 11/10/1975 peach"
];
Run Code Online (Sandbox Code Playgroud)

假设我想提取日期并将其保存到另一个数组中,我可以创建这样的函数

function extractDates(arr)
{
  let dateRegex = /(\d{1,2}\/){2}\d{4}/g, dates = "";
  let dateArr = [];

  for(let i = 0; i<arr.length; i++)
  {
    dates = /(\d{1,2}\/){2}\d{4}/g.exec(arr[i])
    dates.pop();
    dateArr.push(dates);
  }

  return dateArr.flat();
}
Run Code Online (Sandbox Code Playgroud)

虽然这很有效,但它很笨重并且需要,pop()因为它将返回一个数组数组,即:["12/16/1988", "16/"],而且我需要flat()事后调用.

另一种选择是使用给定位置对字符串进行子串,我需要知道正则表达式.

function extractDates2(arr)
{
  let dates = [];

  for(let …
Run Code Online (Sandbox Code Playgroud)

javascript regex arrays

18
推荐指数
2
解决办法
1505
查看次数

调度KeyboardEvent无法在textarea中生成字符

var el = document.getElementById('action');

el.addEventListener('click', function()
{
    var t = document.getElementById('text');
    t.value = 'A should be typed later';
    t.focus();
    t.setSelectionRange(0, 0);

    setTimeout(function()
    {
        t.dispatchEvent(new Event('keypress', {keyCode: 65}))
    }, 800);

}, false);
Run Code Online (Sandbox Code Playgroud)
<textarea id="text"></textarea>
<button id="action">
    Do It
</button>
Run Code Online (Sandbox Code Playgroud)

我想念的a是什么,没有添加到开头textarea

目的是真正模拟键盘上按键的实际按键,而不是(重新)设置文本区域value.

更新:这不是这个问题的重复.

(i)大部分答案都有用jQuery.

(ii)我无法从上述案例的答案中找到一个有效的例子.

(iii)实际上,上述代码来自该页面.

无论如何,这是否重复.您可以将问题读作:为什么以上简单的代码不起作用?

javascript

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

如何一次又一次地动态替换文本

我想一次又一次地使用数组中的项替换段落的内容.当我console.log()用来检查结果时,输出正常.但它没有像预期的那样替换段落上的内容,只是在迭代完成时显示最后一个单词.

这是我创建和迭代数组的代码:

$(document).ready(function()
{
    var _strng = "Lorem ipsum dolor sit amet";
    var _array = new Array();
    _array = _strng.split(' ');

    jQuery.each(_array, function(index,item)
    {
        console.log(item); // Works fine
        $('p').html(item); // Only shows the last word when the iteration is over
        wait(1000); // Custom function
        console.clear();
    });
});
Run Code Online (Sandbox Code Playgroud)

等待()函数:

function wait(_timeframe)
{
    var final = 0;
    var timeframe = new Date(_timeframe);    
    var initial = Date.now();
    final = initial + _timeframe;

    while (Date.now() < final) { };
} …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

8
推荐指数
2
解决办法
279
查看次数

什么是 Bootstrap 卡块类?

我没有看到card-block参考文档中提到的类,但我在一些示例中看到了这个类。这是官方参考:

https://getbootstrap.com/docs/4.0/components/card/

这是使用该类的示例:

https://www.codeply.com/go/pVsGQZVVtG/bootstrap-4-no-gutters-(间距)

我见过用过的卡片,但这个card-block课程是什么?

例子:

<div class="row">
  <div class="col-3">
    <div class="card">
      <div class="card-block">
        normal
      </div>
    </div>
  </div>
  <div class="col-4">
    <div class="card">
      <div class="card-block">
        normal
      </div>
    </div>
  </div>
  <div class="col">
    <div class="card">
      <div class="card-block">
        normal
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

twitter-bootstrap

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

如何将"20hc + 2a + 2hc + 9op"等字符串表达式减少为"22hc + 2a + 9op"

如何在字符串中的数字后面找到并配对字母以减少一个表达式?

让我们假设我们有一个字符串string = "20hc+2a+2hc+9op+330o+10op",我们希望在数字后面找到相同字母的对.首先我们应该做split.('+'),然后我们得到一个数组[....],然后我们需要在数字之后配对每个字母,得到如下所示:

(20hc + 2hc) (2a) (9op+10op) (330o)

最后,我们需要对匹配对的数字求和:

20+2 = 22hc
2 = 2a
9+10 = 19op
330 = 330o
Run Code Online (Sandbox Code Playgroud)

要获得最终结果:

22hc+2a+19op+330o
Run Code Online (Sandbox Code Playgroud)

那么,我怎样才能解决这个问题,只要字母数字相同后它们没有排序就没关系,在这种情况下,我们可以使用正则表达式match吗?还是indexOf

javascript regex arrays loops filter

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

有没有一种方法可以通过使用.forEach或.map代替for循环来解决此问题?

我需要编写一个将数组中的数组元素转换为对象的函数。尽管我已经找到了一种使用来解决问题的方法for-loop,但我只是想知道是否存在使用forEach或方法来编写解决方案的更简洁的方法map

问题是...

var array: [
  [
    ['firstName', 'Joe'],
    ['lastName', 'Blow'],
    ['age', 42],
    ['role', 'clerk']
  ],
  [
    ['firstName', 'Mary'],
    ['lastName', 'Jenkins'],
    ['age', 36],
    ['role', 'manager']
  ]
];
Run Code Online (Sandbox Code Playgroud)

我需要将上面的数组转换成这样。

[
  { firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk' },
  { firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager' }
];
Run Code Online (Sandbox Code Playgroud)

以下是我使用提出的代码for-loop

function transformEmployeeData(array)
{  
  var output = [];

  for (var i = 0; i < array.length; i++)
  {
    var obj = {}; …
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

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

jQuery show()不会使Bootstrap d-none类可见

我99%肯定我在这里遗漏了非常明显的东西。在下一个示例中,单击按钮应使带有.progress类的div 可见。但是,它不起作用。

function func() {
  $('.progress').show();
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<div class="progress d-none">
  No longer hidden!
</div>

<button onclick="func()">
  click me
</button>
Run Code Online (Sandbox Code Playgroud)

jquery twitter-bootstrap

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

默认情况下如何打开 Bootstrap 的可折叠导航栏?

我有一个Bootstrap带有切换按钮的导航栏。当导航栏处于折叠模式或页面加载时,如何默认打开它?我试过将data-toggle="collapse"属性设置为data-toggle="collapse.show",现在它默认显示,但需要单击两次才能关闭。如何在默认情况下打开它并按预期工作?

导航栏代码是这样的:

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    /* content */
  </div>
</nav>
Run Code Online (Sandbox Code Playgroud)

html css twitter-bootstrap

6
推荐指数
2
解决办法
5332
查看次数

如何将 Bootstrap 按钮定位到导航选项卡的右侧?

我正在使用 Bootstrap 的选项卡组件,但无法将蓝色登录按钮刷新到nav-tabs. 我尝试了各种方法,但显然我不明白为什么它不会定位在我想要的位置。

这是我正在尝试做的事情的图像:

在此处输入图片说明

HTML:

<section class="container">
  <ul class="nav nav-tabs pt-5">
    <li class="nav-item"><a class="nav-link active" href="#">Home</a></li>
    <li class="nav-item"><a class="nav-link" href="#">Data</a></li>
    <li class="nav-item">
      <button type="button" class="btn btn-primary ml-2">Log In</button>
    </li>
  </ul>
</section>
Run Code Online (Sandbox Code Playgroud)

JSFIDDLE: https ://jsfiddle.net/auov8ety/

twitter-bootstrap bootstrap-4

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

删除数组上的相邻重复项

假设我们有一个像下一个这样的数字数组:

const input = [2, 2, 0, 2, 3, 3, 0, 0, 1, 1];
Run Code Online (Sandbox Code Playgroud)

目标是删除重复值,但前提是它们相邻。因此,前一个样本的预期输出应该是:

[2, 0, 2, 3, 0, 1]
Run Code Online (Sandbox Code Playgroud)

到目前为止,我设法使用递归方法几乎解决了这个问题,但由于某种我无法想象的原因,生成的结果没有返回(但是,您可以在返回条件之前的日志中看到它)。

const input = [2, 2, 0, 2, 3, 3, 0, 0, 1, 1];
Run Code Online (Sandbox Code Playgroud)
[2, 0, 2, 3, 0, 1]
Run Code Online (Sandbox Code Playgroud)

所以,首先也是主要的是,我想了解我的方法发生了什么,其次我对可以解决这个问题的任何其他方法(任何类型)持开放态度。


更新的解决方案

以防万一有人感兴趣,我终于以这种方式使用递归解决了这个问题。我知道过滤器解决方案简短而优雅,但我正在通过递归训练解决方案。

const input = [2, 2, 0, 2, 3, 3, 0, 0, 1, 1];

const remAdjDups = (arr, output = []) =>
{
    if (!arr.length)
    {
        console.log("Result before return: ", output);
        return output; …
Run Code Online (Sandbox Code Playgroud)

javascript arrays recursion

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