соединение JavaScript

У меня есть массив MyArray, и я хочу удалить один элемент в позиции i.

Я старался:

<code>MyArray = MyArray.splice(i, 1); 
</code>

но он возвращает элемент, который я хочу удалить, вместо массива без элемента, который я хочу удалить.

Я уверен, что это простое исправление, в любом случае, спасибо.

Ответы на вопрос(8)

ю и сохранить исходный массив таким же):

// example array
var foo = ['1', '13', '44', '17', '17', '19', '1', '7', '17'];

// lets say we want to remove one of the 17s from the array
// convert array to string, do replacements, then convert back
var bar = foo.join().replace('17', '').replace(/\,\,/gi, ',').split(',');

// should log ['1', '13', '44', '17', '19', '1', '7', '17']
console.log(bar);

в зависимости от того, как структурирован ваш массив, иногда проще запрашивать / манипулировать строкой, а не массивом (и иногда наоборот)

Syntax
array.splice(index , howMany[, element1[, ...[, elementN]]])
Description

добавляя новые элементы при удалении старых элементов.

Return

Массив, содержащий удаленные элементы. Если удаляется только один элемент, возвращается массив из одного элемента. Если никакие элементы не удалены, возвращается пустой массив.

отМетод сращивания массива - JavaScript | MDN

тем более что я хотел удалить только определенный элемент в массиве, а не все элементы, соответствующие этому элементу.

Я создал это расширение для наблюдаемых массивов нокаута, который, кажется, работает. Я еще не пробовал это с массивами объектов, но я не понимаю, почему это не сработает.

Когда я впервые изучал KO, мне было очень трудно иметь дело с массивами, поэтому я надеюсь, что это будет полезно для других:

JavaScript:

ko.observableArray.fn.removeAt = function (index) {
  this.valueWillMutate();
  this.splice(index, 1);
  this.valueHasMutated();
}

HTML:

<div data-bind="foreach: Answers">
    <input type="text" data-bind="value: $data"/>
    <button 
        data-bind="click: function(){ $parent.Answers.removeAt($index()) }"                          
        title="Remove"
    >X</button>
</div>

splice редактирует массив на месте.

// arr is [1, 2, 3, 4];
var el = arr.splice(0, 1);
// el is [1], arr is now [2, 3, 4].

у значению ... просто используйте существующий массив.

MyArray.splice(i, 1);
Something = MyArray;

Надеюсь это поможет!

+ Изменить

MyArray = MyArray. 

в

MyArray. 

документация по сращиванию

Summary

Changes the content of an array, adding new elements while removing old elements.

Исходный массив изменяется, вместо того, чтобы возвращать новый массив с удаленными указанными элементами.MyArray.splice(i, 1); должно быть достаточно.

splice () является деструктивным методом в том смысле, что он имеет побочные эффекты помимо возвращаемого значения. Хотя он возвращает удаленный элемент, он изменяет фактический массив, который вы передали.

alert("Before: " + MyArray);
MyArray.splice(i, 1);
alert("After: " + MyArray);

ВАШ ОТВЕТ НА ВОПРОС