Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript&;jQuery:更新对象数组_Javascript_Jquery - Fatal编程技术网

Javascript&;jQuery:更新对象数组

Javascript&;jQuery:更新对象数组,javascript,jquery,Javascript,Jquery,我在试图找到一个好的逻辑来更新Javascript中的对象数组时遇到了一些困难。 我通过向服务器发出请求来获取第一个数组。我得到一个对象数组,如下所示: {id: 2, text: 'some text'} //Object 这就是阵列的外观: [Object, Object, Object] 这些对象将转换为html。 一段时间后,它执行第二个请求并获得一个新的数据对象列表。如何将旧列表与新列表同步?我所说的同步是指:删除不再存在的对象,以及相关的html部分,并插入当前不在正确

我在试图找到一个好的逻辑来更新Javascript中的对象数组时遇到了一些困难。
我通过向服务器发出请求来获取第一个数组。我得到一个对象数组,如下所示:

{id: 2, text: 'some text'}  //Object
这就是阵列的外观:

[Object, Object, Object]    
这些对象将转换为html。

一段时间后,它执行第二个请求并获得一个新的数据对象列表。如何将旧列表与新列表同步?我所说的同步是指:删除不再存在的对象,以及相关的html部分,并插入当前不在正确位置的节点

您可以找到添加和删除的项目,如下所示:

var origArray = [...];   // assume first set of data is in origArray
var newArray = [...];    // second set of data is in newArray

function makeMap(array, key) {
    var map = {};
    for (var i = 0; i < array.length; i++) {
        map[array[i][key]] = true;
    }
    return(map);
}

function compareArrayToMap(array, map) {
    var item, var results = [];
    for (var i = 0; i < array.length; i++) {
        item = array[i];
        if (!(item.id in map)) {
            results.push(item);
        }
    }
    return(results);
}

// build id map for each array
var origMap = makeMap(origArray, "id");
var newMap = makeMap(newArray, "id");

// find items that have been removed
var removedItems = compareArrayToMap(origArray, newMap);

// find items that have been added
var addedItems = compareArrayToMap(newArray, origMap);
var origaray=[…];//假设第一组数据在origArray中
var newArray=[…];//第二组数据位于newArray中
函数makeMap(数组、键){
var-map={};
对于(var i=0;i
每个对象的
id
是唯一的吗?HTML是什么样子的?{text}。无论如何,这与此问题无关。我知道如何同步html,我不知道如何同步数组。花括号被通过ajax请求的内容所取代。啊,好吧,听起来你也在问HTML方面的问题