1

我有一个输入,我想在其中输入一些值,例如 [ [2, 4, 2] ] (以制作乘法矩阵)。现在我想读取该值,但不是“[ [2, 4, 2] ]”。有没有办法做到这一点?

<body>
    <div id="main">
        <form>
            <input type="text" id="first"/>
            <label  for="first">example [ [2, 4, 2] ]</label>
            <input type="text" id="second"/>
            <select id="select">
                <option value="add">Add</option>
            </select>
            <textarea></textarea>
        </form>
    </div>

<script type="text/javascript">
$( document ).ready(function() {
    var select = $('#select');

     function multiplyMatrix(m1, m2) {
        var result = [];
        for(var j = 0; j < m2.length; j++) {
            result[j] = [];
            for(var k = 0; k < m1[0].length; k++) {
                var sum = 0;
                for(var i = 0; i < m1.length; i++) {
                    sum += m1[i][k] * m2[j][i];
                }
                result[j].push(sum);
            }
        }
        return result;
    }
    select.change(function(){
        var 
            m1 = $('#first').val(),
            m2 = $('#second').val();
            multiplyMatrix(m1, m2);
            console.log(multiplyMatrix(m1, m2));
    });

});
</script>
4

1 回答 1

1

您想使用JSON.parse将对象解析String为有效的 JavaScript 对象(在您的情况下为 an arrayarray

当您从 html 节点获取值时,您只需要解析它们。

var m1 = JSON.parse($('#first').val()),
    m2 = JSON.parse($('#first').val());

您可能需要预先验证值的格式或将其放在try {} catch (e) {}块内,因为如果值不是有效的 JSON,它将生成错误。

于 2013-06-18T22:05:56.283 回答