2015-09-03 7 views
1

Можно ли вести меня в удалении объекта из массива объектов в JavaScriptКак удалить объект из массива объектов в JavaScript

Вот мой Javascript код

<script> 
    var line = {lines:[]}; 

    function change(num){ 
    line.lines.push({"linechange":num}); 
    } 
</script> 

Здесь num некоторое целое значение, Есть ли способ удалить толкаемый объект на основе значения num?

+2

Вы попробовали что-нибудь после поиска? В чем проблема ? Подсказка: найдите индекс, затем удалите элемент по указанному индексу. Или, если вы можете позволить себе другой объект массива, отфильтруйте его. –

+0

[Array.prototype.filter()] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) может вам помочь. – Satpal

+0

@Satpal Зависит: важно отметить, что фильтр не удаляет элемент из массива, но дает ** новый ** массив. –

ответ

0

Нажмите здесь: https://stackoverflow.com/search?q=javascript+delete+from+array

Удалить в этом случае будет только установить элемент, как определено:

> myArray = ['a', 'b', 'c', 'd'] 
    ["a", "b", "c", "d"] 
> delete myArray[0] 
    true 
> myArray 
    [undefined, "b", "c", "d"] 

сращивания фактически удаляет элемент из массива:

> myArray = ['a', 'b', 'c', 'd'] 
    ["a", "b", "c", "d"] 
> myArray.splice(0, 2) 
    ["a", "b"] 
> myArray 
    ["c", "d"] 

Простой поиск, и вы получили это сами. Код: Deleting array elements in JavaScript - delete vs splice

+0

Вышеизложенные результаты, но ** оба ** удаляют элементы из массива. В первом случае свойство * 0 * удаляется, и никакое другое свойство не затрагивается. Это отсутствующее свойство представляется как * undefined *, но оно не существует (попробуйте 'myArray.hasOwnProperty ('0')'). Во втором примере * splice * не только удаляет элементы, но и смещает все последующие индексы, чтобы «заполнить» созданное пустое пространство. Поэтому, когда * 0 * и * 1 * удаляются, * 2 * и * 3 * сдвигаются вниз, чтобы стать * 0 * и * 1 *. – RobG

Смежные вопросы