循环遍历数组,并将子JSON转换为observablearray?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环遍历数组,并将子JSON转换为observablearray?相关的知识,希望对你有一定的参考价值。
这可能是一个众所周知的问题,可能已经在Stack Overflow中得到了解决,但我没有运气就搜索过了。
我有这个由JSON字符串组成的数组。我正在尝试遍历数组,并将JSON转换为observablearray,以便我可以访问属性“value”,“name”,“price”,以便我可以将它与Knockout一起使用。
带JSON的数组:
0
:
"{"value":"382","name":"Entrecoté med poteter og sånt..","price":295.0}"
1
:
"{"value":"385","name":"Svinekoteletter","price":295.0}"
2
:
"{"value":"386","name":"Pizza Margherita","price":255.0}"
初始循环:
completeArray.forEach(function(c) {
// convert the json string to an observableArray ??
});
编辑
如果其他人来找到如何做到这一点的解决方案,我将包括下面的完整示例:
self.addFoodItemsToSubMenu = function (item) {
var existingFIS = JSON.parse(ko.toJSON(item.foodItemList()));
var newFIS = JSON.parse(ko.toJSON(self.selectedFoodItems()));
var completeFIS = existingFIS.concat(newFIS);
var resultArray = ko.observableArray(completeFIS.map(function (item) {
var parsedResult = JSON.parse(item);
var resultObject = {
value: parsedResult.value,
name: parsedResult.name,
price: ko.observable(parsedResult.price)
}
return resultObject;
}));
item.foodItemList(resultArray());
self.selectedFoodItems([]);
}
答案
如果我理解你的话:
var resultArray = ko.observableArray(completeArray.map(function(item) {
return JSON.parse(item);
}));
另一答案
我会使用map,因为它将循环遍历数组中的每个项目,转换它,并将其吐出:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
以上是关于循环遍历数组,并将子JSON转换为observablearray?的主要内容,如果未能解决你的问题,请参考以下文章
循环遍历对象数组,并将它们转换为 UL 中的 LI 项 [重复]
循环遍历具有子数组的嵌入式文档并将它们显示在 EJS 文档上