Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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 如何基于变量筛选typescript数组_Javascript_Arrays_Angular_Typescript - Fatal编程技术网

Javascript 如何基于变量筛选typescript数组

Javascript 如何基于变量筛选typescript数组,javascript,arrays,angular,typescript,Javascript,Arrays,Angular,Typescript,我试图在TypeScript中过滤数组,但使用变量而不是硬编码的数字。关于堆栈溢出的大多数结果都涉及使用数组过滤数组,但没有一个涉及使用单个变量 我有一个这种类型的对象数组: class pair { name: string, value: number } 我想创建一个函数,根据一个值过滤掉其中的一些 myFunction(removeMe: string) { ... var resultingArray = arrayOfPairObjects.filt

我试图在TypeScript中过滤数组,但使用变量而不是硬编码的数字。关于堆栈溢出的大多数结果都涉及使用数组过滤数组,但没有一个涉及使用单个变量

我有一个这种类型的对象数组:

class pair {
    name: string,
    value: number
}
我想创建一个函数,根据一个值过滤掉其中的一些

myFunction(removeMe: string) {
    ...
    var resultingArray = arrayOfPairObjects.filter(x => x.value === Number(removeMe)); // the cast is necessary, sadly
    return resultingArray;
}
但是如果我这样做,
removeMe
设置正确,但是当过滤器运行时,它的值变得未定义。我不知道为什么,但如果我将
Number(removeMe)
更改为
2
,它将非常有效。我只需要知道如何使变量工作

谢谢大家!


编辑:未定义,我的意思是我可以将removeMe值记录在控制台上.filter()前面的行上,并且它的值是正确的(无论传入什么,都是“1”或“2”),但是我在控制台中收到一个错误,说.filter()中的值未定义。我认为它可能正在失去作用,但我对打字脚本有点陌生,所以可能有一个微妙之处我不知道

“变得不明确”是什么意思?您在哪里看到未定义的值?作为字符串的
removeMe
看起来像什么?我们需要了解如何调用
myFunction
。你能做一个stackblitz吗?也许用parseInt代替Number()@richytong removeMe包含一个数字,但由于其他一些限制,它的类型是String。例如,“1”对不起,removeMe是指我希望删除值为7的原始数组。可能会更改条件以检查!==不过,谢谢你。
arrayOfPairObjects: Pair[] = [
  { name: 'hello', value: 2 },
  { name: 'hello', value: 5 },
  { name: 'hello', value: 7 },
  { name: 'hello', value: 8 },
  { name: 'hello', value: 9 },
  { name: 'hello', value: 10 }
]

// removeMe is a little bit confusing, but okay..
getFilteredArray(removeMe: string) {
   return this.arrayOfPairObjects.filter(x => x.value === +removeMe); 
}

console.log(this.getFilteredArray('7'));

// Output:  
// { name: 'hello', value: 7 }