2013-06-18 6 views
1

У меня есть входы, где я хочу поместить некоторое значение, например [[2, 4, 2]] (чтобы сделать матрицу с умножением). Теперь я хочу прочитать значение, но не как «[[2, 4, 2]]». Есть какой-либо способ сделать это?Входное значение матрицы jQuery

<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> 

ответ

1

Вы хотите использовать JSON.parse разобрать String объект в действительный объект JavaScript (array из array в вашем случае.)

Когда вы получаете значения из HTML узлов, вам просто нужно проанализируйте их.

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

Вы можете подтвердить формат значения заранее или положить, что внутренность try {} catch (e) {} блока, как он будет генерировать ошибку, если значение не является допустимым JSON.

Смежные вопросы