我最近在Leetcode上遇到了这个问题并想出了一个解决方案,我需要澄清一下:
给定一个整数数组,除了一个元素外,每个元素都会出现两次.找一个单一的.
注意:您的算法应具有线性运行时复杂性.你能不用额外的内存来实现吗?
class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int result = 0;
        for(auto & c : nums) {
            result ^= c;
        }
        return result;
    }
};
Run Code Online (Sandbox Code Playgroud)
首先,为了弄清楚我应该对这个问题使用XOR操作,我应该注意哪些类型的关键字?
另外,为什么向量中的所有项目相互异或,给我们一个不重复的项目?
在Angular应用程序中使用管道和模板插值中的方法之间有区别吗?
例如:
<h1>{{ name.toLowerCase() }}</h1> VS <h1>{{ name | lowercase }}</h1>
在表现方面,是真的有收获还是只是个人偏好?
我知道在模板中调用方法通常会降低性能,因为Angular会不断检查其执行是否发生了任何变化.大多数时候,我会在我的组件上使用计算属性.
在运行单元测试和查看Karma 配置文档时,我使用 Karma 作为我的测试运行器,我注意到存在不同级别的日志记录。
目前,我们的代码库使用: logLevel: config.LOG_INFO, 
有没有理由使用这个而不是其他的?
可能的值:
另外,有人知道每个日志级别的作用吗?
在JavaScript中,我可以使用两(2)个指针从列表的开头和结尾获取值,然后递增/递减指针以继续。例如:
for (let i = 0, j = list.length - 1; i < j; i++, j--) {
    console.log(i, j);
}
Run Code Online (Sandbox Code Playgroud)
我将如何在Python中完成相同的任务?我知道我可以通过执行以下操作获取当前索引:
for index in enumerate(list):
    print(index)
Run Code Online (Sandbox Code Playgroud)
但是,我又如何初始化另一个指针来从末尾开始呢?
我在目前正在使用的代码库中注意到以下内容,我不确定它的含义是什么:
public spinnerPromise: Promise<void> = new Promise<void>(() => { return; });
是否有理由拥有空洞的承诺?这让我想起了一个 
 setTimeOut(fn, 0),我想知道它是否有类似的效果.
谢谢
假设我有一些事件从服务中发出字符串值:
public myString: EventEmitter<string> = new EventEmitter<string>();
然后在我的组件中,发出如下消息:
this.myService.myString.emit(value)
我想为尚未发出任何事件的使用此事件的字符串设置默认值。是否可以做类似的事情:
public setString: string = 'Default Value, No Emission Yet' || this.myService.subscribe(emittedValue => this.setString = emittedValue);
Run Code Online (Sandbox Code Playgroud) 我一直无法找到这个问题的答案,但是concat地图和地图有什么区别?具体来说,我有一个例子让我很困惑:
const domainsObservable = this.auth.getAuthDomains()
    .shareReplay()
    .concatMap((authDomains) => authDomains.map((domain) => this.toDomain(domain, connectionsObservable)))
    .filter((authDomain) => this.isValidDomain(authDomain))
    .toArray();
Run Code Online (Sandbox Code Playgroud)
这是从服务调用一个方法getAuthDomains(),只返回一个包含3个域的数组.当我使用上面的实现时,我最终得到了一个由4个数组组成的数组,每个数组都有一个包含3个域的数组.不知何故,它使响应中的数据量翻了两番.
然后我切换到以下实现:
const domainsObservable = this.auth.getAuthDomains()
    .shareReplay()
    .map(authDomains => authDomains.map(domain => this.toDomain(domain, connectionsObservable)))
    .map(authDomains => authDomains.filter(domain => this.isValidDomain(domain)));  
Run Code Online (Sandbox Code Playgroud)
这给了我我所需要的 - 一个正确过滤的单个数组.
那么为什么要切换到map显着改变结果呢?我的操作顺序是否重要?
谢谢
我刚刚为我正在工作的错误编写了以下方法,并想知道为什么编译器没有抱怨以下函数可能无法返回?如果我改为编写if (false)编译器会立即抱怨并非所有路径都返回值。
如果if (data && data.json().length)是假的怎么办?这个函数有返回任何东西吗?
private async getData(items: any[]): Promise<number> {
    for(const item of items) {
        let data = await item.promise;
        if (data && data.json().length) {
            return data.json().findIndex(d => d.fqdn);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
谢谢
正在使用一个void主题来表示某件事已经发生是一个好的做法吗?
我很好奇是否有更好的方法来发出某些事件信号以及我是否应该重组我的代码。
一个更完整的例子是:
客户服务
public data: Subject<Data> = new Subject<Data>();
public save: Subject<void> = new Subject<void>();
Run Code Online (Sandbox Code Playgroud)
A组份
public data: Data[] = [];
public ngOnInit(): void {
    this.data = someApiCall;
}
public saveData(): void {
    this.myService.save.next();
    // do something with data after it being updated
}
private updateData(): void {
    this.myService.data.subscribe(data => {
        this.data = data;
    });
}
Run Code Online (Sandbox Code Playgroud)
B组份
@Input()
public data: Data[] = [];
public ngOnInit(): void {
    this.onSave();
}
private onSave(): void {
    this.myService.save.subscribe(() => {
        this.myService.data.next(this.data); …Run Code Online (Sandbox Code Playgroud) 目前,对于我们的 Web 应用程序,我们正在生成nonce附加到script标签的值。我最近发现了子资源完整性,并考虑到我们正在使用 CDN(如大多数示例参考),我很好奇这是否是我的 Web 应用程序应该使用的东西。
是否存在同时使用nonce和属性的情况?integrity这个比那个好吗?或者,它们是否完全支持多个用例?
谢谢
angular ×4
rxjs ×2
typescript ×2
async-await ×1
c++ ×1
eventemitter ×1
html ×1
javascript ×1
karma-runner ×1
performance ×1
promise ×1
python ×1
security ×1
unit-testing ×1