我有一个输入,我想放置一些像[[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>
答案 0 :(得分:1)
您希望使用JSON.parse
将String
对象解析为有效的JavaScript对象(案例中为array
array
。)
当你从html节点获取值时,你只需要解析它们。
var m1 = JSON.parse($('#first').val()),
m2 = JSON.parse($('#first').val());
您可能希望事先验证值的格式或将其放在try {} catch (e) {}
块内,因为如果值无效JSON,它将生成错误。