循环遍历数组,并将子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 文档上

如何使用 RegExp 循环遍历字符串并将其分段为数组?

php:循环遍历json数组

使用jQuery遍历HTML表格,将表格中的数据转换成JSON

循环遍历两个字符串数组并将它们设置为对象属性