Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择rxjs中重复的第一项_Javascript_Sockets_Filter_Merge_Rxjs - Fatal编程技术网

Javascript 选择rxjs中重复的第一项

Javascript 选择rxjs中重复的第一项,javascript,sockets,filter,merge,rxjs,Javascript,Sockets,Filter,Merge,Rxjs,我从套接字接收到一组流,希望将重复的流合并到一个流中(或选择第一项) 总之,我希望rxjs能够做到这一点: In: 1 - 1 - 1 - 2 - 2 - 3 - 3 - 1 - 1 - 1 - 2 - 2 - 2 - 1 - 2 - 2 - 3 - 3 Out: 1 - - - - - 2 - - - 3 - - - 1 - - - - - 2 - - - - - 1 - 2 - - - 3 - - 你可以试试这个 var arr = [1,1,1,2,2,3,3,1,1,1,2,2,2,

我从套接字接收到一组流,希望将重复的流合并到一个流中(或选择第一项)

总之,我希望rxjs能够做到这一点:

In:  1 - 1 - 1 - 2 - 2 - 3 - 3 - 1 - 1 - 1 - 2 - 2 - 2 - 1 - 2 - 2 - 3 - 3
Out: 1 - - - - - 2 - - - 3 - - - 1 - - - - - 2 - - - - - 1 - 2 - - - 3 - -
你可以试试这个

var arr = [1,1,1,2,2,3,3,1,1,1,2,2,2,2,1,2,2,3,3];
for (i = 1; i < arr.length; i++) { 
    if (arr[i]==arr[i-1]){ arr.splice(i,1);i--;}
}
var arr=[1,1,1,2,2,3,3,1,1,1,2,2,2,2,1,2,2,3];
对于(i=1;i
退出:
[1,2,3,1,2,1,2,3]

您可以试试这个

var arr = [1,1,1,2,2,3,3,1,1,1,2,2,2,2,1,2,2,3,3];
for (i = 1; i < arr.length; i++) { 
    if (arr[i]==arr[i-1]){ arr.splice(i,1);i--;}
}
var arr=[1,1,1,2,2,3,3,1,1,1,2,2,2,2,1,2,2,3];
对于(i=1;i

OUT:
[1,2,3,1,2,1,2,3]

以下是使用函数的方法:

[1,1,1,2,2,3,3,1,1,1,2,2,2,2,1,2,2,3,3].filter((value, index, src) => {
  if(index === 0) {
    //The first element of the array is always included
    return true;
  }
  // Return true (keep) if the current element `value` is different
  // than the element that was last encountered (`src[index-1]`)
  return src[index-1] !== value;
});
其输出为:

[ 1, 2, 3, 1, 2, 1, 2, 3 ]
这是通过迭代数组并检查每个元素是否与前面的元素相同或不同来实现的。这里是相同的东西,但作为一个班轮:

[1,1,1,2,2,3,3,1,1,1,2,2,2,2,1,2,2,3,3].filter((value, index, src) => {
  return index === 0 || src[index-1] !== value;
});

以下是使用该函数的方法:

[1,1,1,2,2,3,3,1,1,1,2,2,2,2,1,2,2,3,3].filter((value, index, src) => {
  if(index === 0) {
    //The first element of the array is always included
    return true;
  }
  // Return true (keep) if the current element `value` is different
  // than the element that was last encountered (`src[index-1]`)
  return src[index-1] !== value;
});
其输出为:

[ 1, 2, 3, 1, 2, 1, 2, 3 ]
这是通过迭代数组并检查每个元素是否与前面的元素相同或不同来实现的。这里是相同的东西,但作为一个班轮:

[1,1,1,2,2,3,3,1,1,1,2,2,2,2,1,2,2,3,3].filter((value, index, src) => {
  return index === 0 || src[index-1] !== value;
});
你需要什么就做什么。

你需要什么就做什么