在比较字符串和字符串的字符后创建新数组排列

时间:2012-03-22 16:09:29

标签: javascript arrays string variables push

我有myArray = [A,C,D,G,J,L,P]

myString = "ABCDEF"

我想创建一个新数组,只包含myString的字符,这些字符也可以在myArray中找到,以便myOtherArray = [A,C,D]

我认为代码应该看起来像这样,但它还没有工作。

for (int i=0; i<myString.length(); i++) {
  for (int j=0; j<myArray.length(); j++) {
    if ((myString.charAt(i)) == myArray[j]) {
      myOtherArray.push(myArray[j])
    }
  }
}

2 个答案:

答案 0 :(得分:2)

如果您尝试在浏览器的控制台中运行它(或只是检查错误日志),您会发现int i=0错误且length不是函数。将int替换为var(两者),将length()替换为length(两者),并且有效。

答案 1 :(得分:1)

您应该使用==来测试是否相等。

if ((myString.charAt(i)) == myArray[j])

此外,推送信后可能需要添加break语句。这使得整个操作更快(尽管如果数组很小则是微优化),如果myArray包含重复的条目,它也会阻止同一个字母被推两次。