GREP未检测到数组中添加的元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GREP未检测到数组中添加的元素相关的知识,希望对你有一定的参考价值。

我从后端加载了一个包含100个元素的数组。

[console.log(array)显示100个元素。

然后我通过ajax获得1个新元素,并使用array.push(new_element);将其添加到数组中>

[console.log(array)显示101个元素。

如果我console.log(array[array.length-1])我得到了我添加的元素。

到目前为止一切正常,数据正确。这是从添加的元素中捕获的。

enter image description here


然后,我想在列表中显示所选元素的子集。

sub_array = jQuery.grep(array, function(n) { return ( n.selected === 'True' });

添加的101元素已被“选定”,已确认,但是我没有进入sub_array。


我检查了所有逻辑,没关系。无法理解为什么我没有获得101元素。

似乎grep命令从原始版本获取数组数据,而不是从更新版本获取数组数据。

例如,如果它进入更深层次的内存或类似的级别。有可能吗?

某些代码

// Part 1 - The original data comes from Django backend

$(document).ready(function(){
    window.array = {{ course_list|safe }};
};


// Part 2 - Adding extra value

$.ajax({
    url:'/myurl',
    contentType : "application/json",
    dataType: 'json',

    success:function(data){

        console.log(array);
        // Here I get the correct number of 100 elements

        new_course = JSON.parse(data.extra_course);
        array.push(new_course);

        console.log(array);
        // Here I get the correct number of 101 elements
    },

    error:function(data){
    },
});

// Part 3 - 

function create_agenda() {
    console.log(array[array.length-1]);
    // Here I get the added element correctly

    sub_array = jQuery.grep(array, function(n) { return ( n.selected === 'True') });
    // Here I don't get the element. Even filtering by other fields
};

sub_array项目示例

enter image description here

欢迎任何线索!!谢谢。

我从后端加载了一个包含100个元素的数组初始值。 console.log(array)显示100个元素。然后我通过ajax获得1个新元素,并使用array.push(new_element);将其添加到数组中。 ...

答案

ajax响应内部,data.extra_course是一个数组而不是对象。您必须像这样将对象推入array

以上是关于GREP未检测到数组中添加的元素的主要内容,如果未能解决你的问题,请参考以下文章

如何检测数组中的相同元素并总结数量?

当我在数组中推送新项目时,未检测到角度输入属性更改

GMSMarker 信息窗口内容(片段)未更新

未检测到已安装的组件。元素已经是另一个元素的子元素

从 DOM 中读取 HTML 片段并向其中添加自定义数据

Python代码阅读(第13篇):检测列表中的元素是否都一样