在我的文本字段中拆分数据

时间:2013-03-15 14:09:43

标签: javascript

你好我对javascipt很新,所以请清楚地解释一下。我目前正在运行一个php页面,其中包括:

<input type="text" id="data"/>

<script>
document.getElementById("data").value = localStorage.getItem('itemsArray');
</script>

此items数组包含保存的对象:

function save(){

var oldItems = JSON.parse(localStorage.getItem('itemsArray')) || [];

var newItem = {};
var num = document.getElementById("num").value;

newItem[num] = {
    "methv": document.getElementById("methv").value
    ,'q1': document.getElementById("q1").value,
    'q2':document.ge27548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}}]tElementById("q2").value,
    'q3':document.getElementById("q3").value,
    'q4':document.getElementById("q4").value,
    'comm':document.getElementById("comm").value
};


oldItems.push(newItem);

localStorage.setItem('itemsArray', JSON.stringify(oldItems));}

页面的结果如下所示:

[{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}}]

无论如何我可以拆分数据,这样我就可以像循环一样一次操作一个。例如:

第一次:

{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}}

下一步:

{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}}

感谢。

3 个答案:

答案 0 :(得分:2)

你应该像填充oldItems数组时的save()方法那样JSON.parse(),然后你可以循环生成的数组。

示例代码:

<input type="text" id="data"/>

<script>
 var myArray = JSON.parse(localStorage.getItem('itemsArray')) || [];
 for (var i = 0; i < myArray.length; i++) {
    var element = myArray[i];
    // Do something with element.
 }
</script>

答案 1 :(得分:1)

数据已在数组中返回,您可以使用标准for循环遍历该数组。但是,您需要先解析它,然后再使用标准对象方法访问一个对象。

例如:

var allItems = JSON.parse(localStorage.getItem('itemsArray')) || [];
for(var i = 0; i < allItems.length; i++) {
  var item = allItems[i];
  console.log('Current item: %o', item);
  // do whatever you want to it, etc.
}

答案 2 :(得分:0)

嗨看起来你的保存脚本从文本字段中获取数据并将它们作为对象添加到数组中。

数组存储在本地存储中,你可以这样得到它:

var items = JSON.parse(localStorage.getItem('itemsArray')) || [];

由于这是一个数组,你应该能够通过一个简单的for循环遍历它:

for(var i in items){
  // this has the i object within the array
  var item = items[i];

  // if you dont know the names of the keys in the array
  // you can loop through this again using another loop
  for(var j in item){
    // you can then change this key like so:
    items[i][j] = item[j].toUpperCase(); // (this makes the value upper-case for example)
  }

  // if you do know the names then you can just change them directly
  items[i].q1 = items[i].q1.toUpperCase();

}