如何将整个数组转换为JavaScript数组中的字符串?

rbpvctlc  于 2023-04-04  发布在  Java
关注(0)|答案(2)|浏览(144)

我试图学习如何在Javascript中创建原型,但Array原型让我感到困惑。我有一个数字数组,它们以字符串的形式存储在Array中,我想转换整个Array,使它们成为实际的数字。我如何做到这一点?我应该键入什么来激活这个原型?

9rnv2umw

9rnv2umw1#

我不确定你到底想如何使用原型。但是从字符串数组中获取数字数组的简单方法是:

var numArray = strArray.map(parseFloat);

对于不支持ECMAScript 5的浏览器,您可以从MDC获取map的回退实现。

a64a0gku

a64a0gku2#

prototype对象

prototype对象的思想是,它是一个对象,所有该类型的新对象都将获得其方法和属性。通过添加到预定义对象的prototype,例如ArrayString,每当创建该类型的新对象时,所有你定义的prototype的方法和属性都将被复制到新对象中。

怎么做?

要做到这一点,你只需遵循符号Object.prototype.myProperty = value,所以在你的情况下,你想添加一个方法,将整个字符串数组转换为数字,这里有一个简单的例子,你会怎么做:

示例

//So here, you see the definition of your new method
//Note the use of the 'Object.prototype.property = value' notation
Array.prototype.stringsToNumbers = function()
    { //I use the Whitesmiths indentation style, get over it :p

    //To refer to the object which the method was called on use the
    //'this' keyword.
    for (index in this)
        {
        if (typeof(this[index]) === 'string') //Always typecheck... Always.
            {
            this[index] = parseFloat(this[index]);
            }
        }

    //Sometimes you want to return the object to allow for chaining.
    return this;
    }

//You would then use it like this:
var myArray = ["23","11","42"];
myArray.stringsToNumbers();
//myArray now contains [23,11,42]

还有什么需要注意的?

可以说,对本机对象进行原型设计的最大危险是有可能与其他第三方代码发生冲突,特别是在使用相对常见的方法(如Array.prototype.empty())扩展本机对象时。在对本机对象进行原型设计时要考虑到这一点,特别是在命名方法和属性时。如果您认为有可能发生冲突,请考虑为方法添加前缀。所以使用Array.prototype.mylibEmpty()代替。

相关问题