经过详尽的搜索,我还没有找到明确的答案来解决我的问题。这可能部分是由于对 javascript 术语的不正确或不精确的引用,因为面向对象的编程对我来说是新的。

var numArray = [0.123456789, 31.415, 314.15, -314.15, 0.0, 0, 1, 10, 100];

var AlignDecimal = function(NumberArray){

    var numberStructure = [{
        value:0,
        toString:"",
        decimalIndex:-1,
        integer:"",
        integerLength:-1,
        mantissa:"",
        mantissaLength:-1,
        sign:""
    }];

    for (var i = 0; i < NumberArray.length; i++){
        numberStructure[i].value = NumberArray[i];
        println(numberStructure[i].value);
    }

};

AlignDecimal(numArray);

我希望从上面有足够的信息来确定我的最终编程目标。

最初我试过:
numberStructure.value = NumberArray

这部分有效,只是 .value 变成了一个数组,而不是 numberStructure[].value。

然后我尝试:
numberStructure = NumberArray

现在 numberStructure[] 数组收到 NumberArray[] 但很明显, numberStructure[].value 是未定义的。

还试过:
for (var i = 0; i < NumberArray.length; i++){
    numberStructure[i].value.push(NumberArray[i]);
    println(numberStructure[i].value);
}

那也没有用。

最佳答案

您是否正在尝试获取一组 numberStructure 对象,numArray 中的每个数字对应一个?如果是这样,这是一种方法:

var numArray = [0.123456789, 31.415, 314.15, -314.15, 0.0, 0, 1, 10, 100];

var AlignDecimal = function(NumberArray){

    function numberStructure(){
        this.value = 0;
        this.toString = "";
        this.decimalIndex = -1;
        this.integer = "";
        this.integerLength = -1;
        this.mantissa = "";
        this.mantissaLength = -1;
        this.sign = "";
    };

    var numberStructureArray = [];

    for (var i = 0; i < NumberArray.length; i++){
        var numStruct = new numberStructure();
        numStruct.value = NumberArray[i];
        numberStructureArray.push(numStruct);
        document.writeln(numberStructureArray[i].value + '<br/>');
    }

};

AlignDecimal(numArray);


你也可以这样做:


var numArray = [0.123456789, 31.415, 314.15, -314.15, 0.0, 0, 1, 10, 100];

var AlignDecimal = function(NumberArray){

    var numberStructureArray = [];

    for (var i = 0; i < NumberArray.length; i++){
        numberStructureArray.push({
            value:NumberArray[i],
            toString:"",
            decimalIndex:-1,
            integer:"",
            integerLength:-1,
            mantissa:"",
            mantissaLength:-1,
            sign:""
        });
        document.writeln(numberStructureArray[i].value + '<br/>');
    }
};

AlignDecimal(numArray);

关于javascript - 设置对象数据结构数组属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27965076/

10-11 17:53