1

一連の 0 または 1 ビットと値の配列である文字列を取得しました。文字列に 1 に設定された文字がある場合、配列から対応する値を返す必要があります。例: mystring = "0101"; myarray =["A","B","C","D"]; then 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

結果 = 新しい配列(); for(var i=0;i

于 2013-03-18T18:33:45.547 に答える
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 に答える