Javascript从数组中删除对象

时间:2016-06-20 16:18:32

标签: javascript arrays

所以这个问题可能在语法层面上有点基础,但我是javascript的新手并且还在解决问题。

所以我设置了一个如下所示的数组:

chainResidue = [ {cname : selectedId.ChainId, rnum: Numbed(selectedId.residueNumber}]

我将把它推到一个名为ballsAndSticksData = []

的单独数组中 像这样:

ballsAndSticksData.push(picked);

我想检查该项目是否在列表中,如果是,请将其删除。

完整代码:

$('span').click(function() {

                    // Index the span element relative to the Div Class
                    var index = $(this).index();
                    var selectedId = chainResidue[index];
                    //Set up the picked structure **Note** Not every PDB file starts off at the index of 1
                    var picked = structure.select({
                        cname: selectedId.chainId,
                        rnum: Number(selectedId.residueNumber)
                    });

                    // Check if the span element is selected or not
                    if ($(this).hasClass('spanSelected')) {
                        $(this).removeClass('spanSelected');
                        $(this).addClass('spanUnselected');

                        //Function to remove an element in a list
                        var index = ballsAndSticksData.indexOf(picked);
                        alert (index);
                        if (index > -1) {
                            ballsAndSticksData.splice(index, 1);
                        }
                        console.log(ballsAndSticksData);
                        if ( ballsAndSticksData.length === 0 ) {
                            viewer.requestRedraw();
                        } else {
                            for (i = 0; i < ballsAndSticksData.length; i++) {
                                viewer.ballsAndSticks('ligand', ballsAndSticksData[i]);
                            }
                        }

                    }



                 else {

                        $(this).removeClass('spanUnselected');
                        $(this).addClass('spanSelected');
                        viewer.ballsAndSticks('ligand', picked);
                        ballsAndSticksData.push(picked);
                        console.log((ballsAndSticksData));

                    }

我尝试过的事情:

所以indexOf每次都为列表中的项返回-1,所以它必须是使用{}的东西,我认为是可以的。

0 个答案:

没有答案