Angular2 IndexOf查找和删除数组值

时间:2016-06-01 19:01:35

标签: html arrays list angular ngfor

您好我在使用Angular2和Typescript时尝试删除数组中的某个索引。我想从值中检索索引。

我的数组正常声明...

 RightList = [
    'Fourth property',
    'Fifth property',
   'Sixth property',
]

我从设置删除功能的基本前提开始。

       removeSel(llist: ListComponent, rlist:ListComponent){
      this.selectedllist = llist;
console.log(JSON.stringify(this.selectedllist)); // what is to be searched turned into a string so that it may actually be used

我的JSON.Stringify的console.log告诉我,我将尝试删除的值是"第六个属性"。但是当我尝试使用以下代码在我的数组中查找此值时。它返回-1,这意味着我的值在数组中找不到。

  var rightDel = this.RightList.indexOf((JSON.stringify(this.selectedllist)));  // -1 is not found 1 = found
      console.log(rightDel);

在我输出到控制台的时候,它确实返回了要搜索但没有找到数组中项目的项目

CONSOLE OUTPUT:
  "Sixth property" // Item to be searched for
 -1   // not found 

在我的函数实现中搜索数组有什么问题吗?

1 个答案:

答案 0 :(得分:1)

当然indexOf在数组中找不到你的项目,因为

JSON.stringify(this.selectedllist) !== this.selectedllist

这是因为JSON字符串化字符串在文字周围编码引号,原始字符串没有。这很容易测试:

var a = 'test';
console.log( JSON.stringify(a), a, JSON.stringify(a) === a )

删除JSON.stringify,它应该有效。通常,要将某些内容转换为String类型,您应该使用其.toString()方法,或者只是将此内容包装到String(something)中。