1

得到一个字符串,它是一系列 0 或 1 位和一个值数组,如果字符串中有设置为 1 的字符,我需要从数组中返回相应的值。例如:mystring = "0101"; myarray =["A","B","C","D"]; 那么 result = "B,D" 我怎样才能得到这个结果呢?

  for(var i=0;i<mystring.length;i++){
    if(mystring[i] != 0)
 {
 result = myarray[i];
 }
  }
4

4 回答 4

2

您的代码似乎工作得很好,所以您可以添加另一个数组并将值推送到该数组:

var result = [];
for (var i = 0 ...
    result.push(myarray[i]);

http://jsfiddle.net/ExplosionPIlls/syA2c/


一个更聪明的方法是应用一个过滤器来myarray检查相应的mystring索引。

myarray.filter(function (_, idx) {
    return +mystring[idx];
})

http://jsfiddle.net/ExplosionPIlls/syA2c/1/

于 2013-03-18T18:13:47.437 回答
0

遍历二进制字符串中的字符,如果遇到 1,则将数组中对应索引处的值添加到临时数组中。通过逗号加入临时数组以获取输出字符串。

于 2013-03-18T18:14:58.227 回答
0

我不确定这是否是您要查找的内容,但这会返回匹配数组。

   var result = [];
   for(var i=0;i<mystring.length;i++){
       if(parseInt(mystring[i]) !== 0 ) {
          result.push(myarray[i]);
       }
   }
   return result;
于 2013-03-18T18:15:08.437 回答
0

结果 = 新数组();for(var i=0;i

于 2013-03-18T18:33:45.547 回答