0

我在 Javascript 中有两个(或更多)关联数组:

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 回答