返回没有指定元素的新数组原始,单行?

时间:2017-12-02 02:40:22

标签: jquery arrays

我做了一些研究,但无法找到与我的用例完全匹配的任何内容。

我需要快速返回一个没有原始元素的新数组。换句话说,我需要以某种方式组合splice / indexOf /等,但下面的内容是失败的:它只返回一个元素" TEST"我正在删除。

下面的函数需要返回一个新数组,除了删除的项目之外的所有内容。



function newArrayWithout(array, elem) {
   return array.splice(array.indexOf(elem), 1);
}

var array = ["abc", "def", "TEST", "ghi"];

var newarray = newArrayWithout(array, "TEST");

console.log('New array: ' + newarray);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

检查是否解决了您的问题:

for(var i = 0; i < localStorage.length; i++)
{
    console.log(localStorage.key(i));
}

JSFiddle Example

答案 1 :(得分:0)

使用.splice().indexOf(),您可以执行已有的操作。但是你需要返回的是数组,因为.splice()的返回值是被删除的元素。不是剩下的元素。如果要保留原始数组,则需要先复制数组。例如

var array = ["abc", "def", "TEST", "ghi"];

// Copy the values of array first
var newArray = array.slice();

// Splice using indexOf the element to be removed
newArray.splice(newArray.indexOf("TEST"), 1);

console.log('original :' + array);
console.log('new :' + newArray);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>