小编pbi*_*aly的帖子

在javascript中调用另一个方法内的方法?

我有一个JavaScript名称空间说

A={

  CA: function() {
    this.B();
  },
  B: function() {
    var test='test';
    var result='t1';

    C: function() {
      this.test='test1';
      .....
      .....
      return 'test1';    
    }

   result=this.C();  
   return result; 
  }
}
Run Code Online (Sandbox Code Playgroud)

现在当我执行这样的代码时,它给出了TypeError:this.C不是一个函数.有人可以告诉我为什么会这样.我知道这与词汇范围有关,但我无法理解这一点.

javascript methods

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

Angular 2 TranslateService检测语言更改

如何检测其他组件中的语言变化?我的检测是在标头组件中进行的。我的目标是检测语言变化并设置样式。

子组件:

import { TranslateService } from "ng2-translate";
export class ChildComponent{
    public browserLang: string;
    constructor(private translate: TranslateService) {
        this.browserLang = translate.getBrowserLang();
    }
}
Run Code Online (Sandbox Code Playgroud)

儿童的HTML:

<div ng-class="{black: browserLang == 'en', red: browserLang == 'de'}" >
Run Code Online (Sandbox Code Playgroud)

结果是:未添加类。如果我输出语言字符串(en)是正确的。但是它没有听任何更改。如何使其听和改变课堂?

html javascript angular-translate angular

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

Typescript-在运行时检查类型并警告错误

介绍

我正在使用Angular 6。

Angular使用打字稿,因此您可以键入函数的参数:

public fun1(aaa: number) {
  console.log(aaa);
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试fun1使用其他类型的参数进行调用-我会收到错误消息:

public fun2() {
  this.fun1([1, 2, 3]); // TS2345: Argument of type 'number[]' is not assignable to parameter of type 'number'
}
Run Code Online (Sandbox Code Playgroud)

问题

如果我可以控制文件中的参数,则类型检查效果很好。

但是也许fun1用我从后端得到的一些参数来调用。

Typescript在运行时无法正常运行,因此不会显示任何错误,它的代码fun1只能与一起运行[1, 2, 3]

-编辑-

后端响应不是问题的唯一来源。有时,库可以更改您的数据类型,而您可能对此一无所知。一个示例是将Reactive Forms与应为数字的控件一起使用-编辑数字时,它将转换为字符串。

在运行时是否有一些通用的类型检查方法?

我想到了类似的东西:

public fun1(aaa: number) {
  if (typeof aaa !== 'number') {
    console.warn('wrong type');
  } else {
    console.log(aaa);
  }
}
Run Code Online (Sandbox Code Playgroud)

但是WebStorm然后告诉我typeof check is always false: 'aaa' always has type …

typescript angular

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

一般来说,减少比过滤器+地图更快吗?

灵感来自这个问题:

用reduce es6替换filter和map

在给定的例子中,我决定测试是否reducefilterplus 更快map.

我做了一个小提琴:

var data = Array(10 ** 4).fill(null).map((_, i) => {
  return {
    checked: Math.random() < 0.5,
    val: Math.floor(Math.random() * 10000)
  }
})

f1 = () => {
  t0 = performance.now();
  data.filter(el => el.checked).map(el => el.val)
  t1 = performance.now();
  // console.log("filter plus map took " + (t1 - t0) + " milliseconds.")
  document.getElementById('filterPlusMap').innerText = t1 - t0;
}

f2 = () => {
  t0 = performance.now();
  data.reduce((prev, curr) => { …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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

python - 在for循环中更改元素

假设我们有三个列表:

listA = [5,6,2]
listB = [7,1]
listC = [5,3,6]
Run Code Online (Sandbox Code Playgroud)

我想在一个for循环中对这些列表进行排序,所以做类似的事情:

for thisList in [listA, listB, listC]:  # edited, was 'list' here
    thisList = thisList.sort()
Run Code Online (Sandbox Code Playgroud)

哪里thisListlistA,然后listB,然后listC,所以在最后我的名单会是这样的:

listA = [2,5,6]
listB = [1,7]
listC = [3,5,6]
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

注意 - 这只是一个例子,我正在处理的问题有点难,但我想做一个我需要的简单例子.

- 编辑 -

如果我想在这里进行一些自定义排序怎么办?我知道,例如,我可以这样进行自定义排序:myList = sorted(myList,key = lambda val:val/2)

但我正在使用sorted,而不是sort在这里.

我可以使用自定义排序sort吗?

询问原因给出答案(thx btw;))正在使用sort......

python sorting

-4
推荐指数
2
解决办法
72
查看次数