E4X中有没有类似Array.join()的方法,将原始数据类型的XMLList转换成Array?

Is there a method in E4X to convert a XMLList of primitive data types into an Array similar to Array.join()?

E4X 中有没有一种方法可以将原始数据类型的 XMLList 转换为数组?

例如,数组 class 有一个连接方法,可以将数组转换为字符串,并使用 join(",") 用逗号分隔每个项目。有没有办法用 XMLList 做类似的事情?

示例:

var xmlList:XMLList = new XMLList();
xmlList[0] = "Hello";
xmlList[1] = "World";
var myItems:String = xmlList.join(","); // there is no join method in E4X
var anArray:Array = myItems.split(",");

我认为最简单的方法就是将 XMLList 对象转换为数组,然后像这样使用 Array.join()

var xml:XMLList = new XMLList();
    xml[0] = 'hello';
    xml[1] = 'world';

trace(xml.toXMLString().split('\n').join(','));     // gives : hello,world

这里当然要根据你的OS设置正确的换行符(\n\r\r\n)。

您还可以使用 XMLList.prototype 添加 join() 功能:

XMLList.prototype.join = function(sep:String = ','):String {
    var str:String = '';
    for(var i:int = 0; i < this.length(); i++){
        str += this[i] + sep;
    }
    return str.slice(0, -1); // the String.slice() is used to remove the last ','
}

trace(xml.join(','));   // gives : hello,world

我只是想给你一些礼仪,让你做你想做的事。

希望能帮到你。