相关疑难解决方法(0)

如何确定两个JavaScript对象的相等性?

严格的相等运算符将告诉您两个对象类型是否相等.但是,有没有办法判断两个对象是否相等,就像 Java中的哈希码一样

Stack Overflow问题JavaScript中是否有任何类型的hashCode函数?类似于这个问题,但需要更多的学术答案.上面的场景说明了为什么需要有一个,我想知道是否有任何等效的解决方案.

javascript equals object hashcode

599
推荐指数
23
解决办法
45万
查看次数

按键排序JavaScript对象

我需要按键对JavaScript对象进行排序.

因此如下:

{ 'b' : 'asdsad', 'c' : 'masdas', 'a' : 'dsfdsfsdf' }
Run Code Online (Sandbox Code Playgroud)

会成为:

{ 'a' : 'dsfdsfsdf', 'b' : 'asdsad', 'c' : 'masdas' }
Run Code Online (Sandbox Code Playgroud)

javascript sorting

456
推荐指数
21
解决办法
47万
查看次数

如何在node.js中获取字符串的sha1哈希值?

我正在尝试创建一个用node.js编写的websocket服务器

为了使服务器工作,我需要获取字符串的SHA1哈希值.

我需要做的是在文档的第5.2.2节第35页中解释.

注意:例如,如果"Sec-WebSocket-Key" 客户端握手中的标头值为"dGhlIHNhbXBsZSBub25jZQ==",则服务器会附加字符串"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"以形成字符串"dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11".然后服务器将获取该字符串的SHA-1哈希值,给出值0xb3 0x7a 0x4f 0x2c 0xc0 0x62 0x4f 0x16 0x90 0xf6 0x46 0x06 0xcf 0x38 0x59 0x45 0xb2 0xbe 0xc4 0xea.然后对该值进行base64编码,以提供"s3pPLMBiTxaQ9kYGzzhZRbK+xOo="将在"Sec-WebSocket-Accept"标头中返回的值.

javascript websocket node.js

94
推荐指数
5
解决办法
8万
查看次数

按属性名称对JavaScript对象进行排序

我一直在寻找一段时间,想要一种方法来对这样的Javascript对象进行排序:

{
    method: 'artist.getInfo',
    artist: 'Green Day',
    format: 'json',
    api_key: 'fa3af76b9396d0091c9c41ebe3c63716'
}
Run Code Online (Sandbox Code Playgroud)

并按名称按字母顺序排序得到:

{
    api_key: 'fa3af76b9396d0091c9c41ebe3c63716',
    artist: 'Green Day',
    format: 'json',
    method: 'artist.getInfo'
}
Run Code Online (Sandbox Code Playgroud)

我找不到任何可以执行此操作的代码.谁能给我一些帮助?

javascript sorting object

55
推荐指数
4
解决办法
7万
查看次数

如何确定性地验证JSON对象是否未被修改?

根据JSON.stringify的MDN文档:

不保证非数组对象的属性按任何特定顺序进行字符串化.不要依赖于字符串化内同一对象内的属性排序.

我曾希望通过缓存对象的字符串化版本来确定对象是否已更改,然后将其与随后的字符串化对象版本进行比较.这似乎比递归迭代对象并进行比较要简单得多.问题是因为JSON.stringify函数不是确定性的,所以当我对同一个对象进行字符串化时,我可以在技术上得到一个不同的字符串.

我还有其他选择吗?或者我是否必须编写令人讨厌的比较函数来确定对象相等性?

javascript json

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

如何测试两个对象是否与JavaScript相同?

我需要一个功能:

function isSame(a, b){
} 
Run Code Online (Sandbox Code Playgroud)

其中,如果a和b相同,则返回true.
,我试过return a === b,但我发现[] === []会返回false.
我期望这个功能的一些结果可以给出:

isSame(3.14, 3.14);  // true  
isSame("hello", "hello"); // true  
isSame([], []); // true  
isSame([1, 2], [1, 2]); // true  
isSame({ a : 1, b : 2}, {a : 1, b : 2}); //true  
isSame([1, {a:1}], [1, {a:1}]);  //true
Run Code Online (Sandbox Code Playgroud)

javascript

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

如何更改JSON中字段的顺序

场景:考虑我有一个JSON文档如下:

   {
     "name": "David",
     "age" : 78,
     "NoOfVisits" : 4
   }
Run Code Online (Sandbox Code Playgroud)

问题:我想改变文档中字段的顺序/顺序,比如我想要age,NoOfVisits然后最后name.

截至目前,我将值存储在临时变量中,删除字段并重新创建相同的字段.由于重新分配不起作用:(

我是按照以下方式做到的:

    temp = doc["age"];
    delete doc['age'];
    doc["age"] = temp;

    temp = doc["NoOfVisits "];
    delete doc['NoOfVisits '];
    doc["NoOfVisits"] = temp;

    temp = doc["name"];
    delete doc['name'];
    doc["name"] = temp;
Run Code Online (Sandbox Code Playgroud)

这样我就可以获得所需的有序JSON文档.这个要求是特殊的,但我仍然需要一些有效的解决方案

问题:有人可以用有效的方法帮助实现同样的目标吗?

json node.js

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

为什么没有 RxJS 运算符来从流中删除特定项目?

我在尝试从可观察流中删除属性时遇到了难以置信的困难。我有一个可观察的对象,它在 url ( Angular ActivatedRoute.queryParams) 中发出查询参数对象。我试图从发出的值中删除键和值并调用,distinctUntilChanged()以便它们的更改不会触发我的观察者。

允许pluck()您仅允许流中的一个参数通过,filter()允许您过滤整个流,skip()运算符允许您跳过整个流排放,throttle()以限制排放量。尽管做相反的事情pluck()- 您希望允许流中除一个值之外的所有值通过 - 并不存在。最接近完成它的是一个map(),它创建一个新对象,删除属性,然后返回该新对象,但这充其量是有问题的,而且通常不起作用。

除了我试图忽略的属性之外,我已采取为所有查询参数属性创建单独订阅的方法。我想必须有一个更好的方法来解决这个问题,是否有一些我缺少或解决的神奇操作符?当类似的东西存在时,为什么反应式库中缺少如此明显的运算符pluck()

编辑:

代码:

this.activatedRoute.queryParams
  .map((value) => {
    const newObj = Object.assign({}, value);
    delete newObj['page'];
    return newObj;
  })
  .distinctUntilChanged()
  .skip(1)
  .subscribe(
    (value) => console.log(value)
  );
Run Code Online (Sandbox Code Playgroud)

rxjs reactive angular

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

标签 统计

javascript ×6

json ×2

node.js ×2

object ×2

sorting ×2

angular ×1

equals ×1

hashcode ×1

reactive ×1

rxjs ×1

websocket ×1