0

Javascriptに2つ(またはそれ以上)の連想配列があります:

tagArray['title'] = ('<H1>title</H1>');
tagArray['text'] = ('<P>text</P>');

そして、次のように参加したい:

tagFinal = tagArray.join("<BR>");

しかし、結果は空です。

結果は次のようになります。tagFinal = '<H1>title</H1><BR><P>text</P>';

私は何が間違っているのですか?(私もタグなしで試しましたが、違いはありません)それともpush()、新しい配列/文字列に-ngしたほうがいいですか?

4

2 に答える 2

2

JavaScriptには「連想配列」型のようなものはありません。オブジェクトと配列があります。Arrayプロトタイプには.join()メソッドがありますが、Objectにはありません。

(一般に、オブジェクトは連想配列のように機能しますが、実際の配列を模倣する明示的な機能は組み込まれていません。たとえば、オブジェクトインスタンスの「長さ」もわかりません。)

ただし、このような関数を作成することはできます。

function smush( o, sep ) {
  var k, rv = null;
  for (k in o) {
    if (o.hasOwnProperty(k)) {
      if (rv !== null) rv += sep;
      rv += o[k];
    }
  }
  return rv;
}

「smush」関数を(継承されたものではなく)オブジェクトの直接プロパティでの作業に本当に制限したいかどうか、およびタイプでフィルタリングしたいかどうかは、自分で決定する必要があります。

于 2012-06-11T12:22:29.310 に答える
0

このコードはあなたのために働くはずです:

var tagFinal = "";
var i = 0;
    
for (var key in tagArray) {
    if(i == 0){separator = "";}else{separator = "<br>";}
    tagFinal += separator + tagArray[key];
    i++;
}

于 2022-02-02T03:30:01.350 に答える