相关疑难解决方法(0)

1761
推荐指数
23
解决办法
82万
查看次数

TypeScript过滤掉数组中的空值

TypeScript, - strictNullChecks模式.

假设我有一个可以为空的字符串数组(字符串| null)[].以表达式为string []的方式删除所有空值的单表达式方法是什么?

const array: (string | null)[] = ["foo", "bar", null, "zoo", null];
const filterdArray: string[] = ???;
Run Code Online (Sandbox Code Playgroud)

Array.filter在这里不起作用:

// Type '(string | null)[]' is not assignable to type 'string[]'
array.filter(x => x != null);
Run Code Online (Sandbox Code Playgroud)

数组理解可能有效,但TypeScript不支持它们.

实际上,通过从联合中删除具有一个特定类型的条目,可以将该问题推广到过滤任何联合类型的数组的问题.但是让我们关注具有null和未定义的联合,因为这些是最常见的用例.

typescript

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

在JavaScript中排序:不应该返回一个布尔值足够的比较函数?

我总是这样成功地对我的数组进行排序(当我不想要标准的词典排序时):

var arr = […] // some numbers or so
arr.sort(function(a, b) {
    return a > b;
});
Run Code Online (Sandbox Code Playgroud)

现在,有人告诉我这是错的,我需要return a-b改为.这是真的,如果是的话为什么?我测试了我的比较功能,它有效!另外,为什么我的解决方案出错时会如此常见

javascript sorting comparison

41
推荐指数
2
解决办法
7724
查看次数

为什么math.max()返回带有整数数组的NaN?

我试图通过一个简单的方法得到最高的数字NaN:

data = [4, 2, 6, 1, 3, 7, 5, 3];

alert(Math.max(data));
Run Code Online (Sandbox Code Playgroud)

我已经读过如果数组中的一个值无法转换为数字,它将返回typeof,但在我的情况下,我已经仔细检查NaN以确保它们都是数字,所以可能是我的问题?

javascript arrays math max nan

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

如何使用JS WebAudioAPI进行节拍检测?

我有兴趣使用JavaScript WebAudioAPI来检测歌曲节拍,然后在画布中渲染它们.

我可以处理画布部分,但我不是一个很大的音频人,真的不明白如何在JavaScript中制作节拍探测器.

我已经尝试过这篇文章但是,对于我的生活,我不能连接每个函数之间的点来制作一个功能程序.

我知道我应该向你展示一些代码,但说实话,我没有任何代码,我所有的尝试都失败了,并且在前面提到的文章中有相关的代码.

无论如何,我真的很感激一些指导,甚至更好的演示如何实际检测歌曲节拍WebAudioAPI.

谢谢!

javascript audio beat-detection web-audio-api

13
推荐指数
2
解决办法
8387
查看次数

Chrome:如何在Math.max.apply(Math,array)上解决"超出最大调用堆栈大小"错误

我必须找到非常大的数组的最大值和最小值.为此,我正在使用

Math.max.apply(Math, my_array);
Math.min.apply(Math, my_array);
Run Code Online (Sandbox Code Playgroud)

它在Firefox和IE上运行良好,但在Chrome上我总是会Maximum call stack size exceeded出错......我当前的数组有221954个元素,这不是我最大的元素.

有人知道如何在Chrome上解决此错误吗?如何优化最大值和最小值的搜索?

对于那些无法相信的人,请在Chrome的控制台中试试:

var xxx = []
for(var i=0; i<300000; i++){
    xxx.push(Math.random());
}
Math.max.apply(Math, xxx);
Run Code Online (Sandbox Code Playgroud)

---> RangeError:超出最大调用堆栈大小

javascript optimization google-chrome

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

等于缩略图的高度

thumbnail span3每个Twitter Bootstrap行有3个元素,但<p>文本是可变的,它打破了布局.如何将每个thumbnail缩略图设置为最大缩略图的高度,以便它们正确流动?

<div class="box_line" style="float: left; border: 1px solid red;">
  <div class="thumbnail span3">
    <img src="http://placehold.it/260x180" alt=""/>
    <div class="caption">
      <h5>Thumbnail label</h5>
      <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我还没有找到一个可用的jQuery插件来执行此操作,本主题 中的解决方案对我也不起作用.

html css twitter-bootstrap

10
推荐指数
4
解决办法
3万
查看次数

Javascript Math.max和Math.min如何实际工作?

我真的很好奇这些功能是如何运作的?我知道有很多关于如何使用它们的问题,我已经知道如何使用它们,但我无法在任何地方找到如何实际在数组上实现此功能,例如,如果没有这样的功能?如果没有帮助者,你会如何编写这样的函数?

javascript math

8
推荐指数
4
解决办法
5110
查看次数

如何使用 JavaScript 获取数组中最小值的索引?

我写了这个函数,它返回-1.

function sayHello() {
  let arrayEdificiosNiveis = [11,10,10];
  var indexMenor = arrayEdificiosNiveis.indexOf(Math.max(arrayEdificiosNiveis));
  console.log(indexMenor);
}
sayHello();
Run Code Online (Sandbox Code Playgroud)

我期望 0,而不是 -1。我该如何解决这个问题?

javascript arrays min

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

在div jquery中计算左定位

几天前,我在webapps.stackexchange.com上询问了以下问题:https://webapps.stackexchange.com/questions/54130/is-there-a-way-to-remove-overlaying-events-in-google-calendar

到目前为止我没有得到任何好的答案,所以我决定编写自己的小脚本,根据重叠事件的数量改变事件的宽度.

我想避免重叠盒子并希望它们堆叠.

这是初步测试:

在此输入图像描述

以下是一个基本脚本,包含说明:

    $('[class^="tg-col"]').each(function(){ // each day column 
                                           //(Mon, Tue, etc. has class tg-col or tg-col-weekend.
    var ItemArray = [];
    $(this).find(".chip").each(function(){ //each event box has chip class.

    var top = $$(this).position().top;  //Get top pixels
    var bottom = $$(this).height() + top;  //get end of the event.
    var arr = ItemArray.push({
        class: $$(this).attr("class").split(" ")[0], 
        start : top, 
        end:bottom
         }); 
    });
    var result = getOverlaps(ItemArray); //get overlaps counts number of overlapping events.
    $$.each(result, function(index, value){ 
      var ec = result[index].eventCount; …
Run Code Online (Sandbox Code Playgroud)

html css jquery google-calendar-api

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