Javascript 如何在数组中查找数组并将其删除?
若我将通过test unique关键字找到匹配的数组,我将删除[test,1] 因此,删除后的arr将为[[demo,2]] 我该怎么做Javascript 如何在数组中查找数组并将其删除?,javascript,jquery,arrays,find,matching,Javascript,Jquery,Arrays,Find,Matching,若我将通过test unique关键字找到匹配的数组,我将删除[test,1] 因此,删除后的arr将为[[demo,2]] 我该怎么做 操场:你可以这样做: var arr = [["test","1"],["demo","2"]]; // $.inArray() ??? // .splice() ??? // $.each() ??? $("code").html(JSON.stringify(arr)); function remove(oldArray, itemName) {
操场:你可以这样做:
var arr = [["test","1"],["demo","2"]];
// $.inArray() ???
// .splice() ???
// $.each() ???
$("code").html(JSON.stringify(arr));
function remove(oldArray, itemName) {
var new_array = [];
for(var i = 0, len = oldArray.length; i < len; i++) {
var arr = oldArray[i];
if (arr[0] != itemName) new_array.push(arr);
}
return new_array;
}
我在这里做假设,不做任何真正的错误检查,但你明白了。你可以这样做:
var arr = [["test","1"],["demo","2"]];
// $.inArray() ???
// .splice() ???
// $.each() ???
$("code").html(JSON.stringify(arr));
function remove(oldArray, itemName) {
var new_array = [];
for(var i = 0, len = oldArray.length; i < len; i++) {
var arr = oldArray[i];
if (arr[0] != itemName) new_array.push(arr);
}
return new_array;
}
我在这里做假设,不做任何真正的错误检查,但你明白了。也许类似于:
var arr = [["test","1"],["demo","2"]];
var new_arr = remove(arr,'test');
也许是这样的:
var arr = [["test","1"],["demo","2"]];
var new_arr = remove(arr,'test');
这是为了:
如果要修改现有阵列而不是创建新阵列,只需将其重新分配:
newArr = arr.filter(function(item) { return item[0] != "test" })
修改器方法(如splice)使代码更难阅读和调试。这就是它的用途:
如果要修改现有阵列而不是创建新阵列,只需将其重新分配:
newArr = arr.filter(function(item) { return item[0] != "test" })
修改器方法(如splice)使代码更难阅读和调试。请检查此方法
arr = arr.filter(function(item) { return item[0] != "test" })
检查这个
arr = arr.filter(function(item) { return item[0] != "test" })
注意:这将删除arr中元素为0=test的任何内部数组
注意:这将删除arr中具有0 element=test的任何内部数组我可以使用remove from arr,而不是创建新数组吗,无论如何,谢谢不,除非修改数组对象。看看Jorge的答案,拼接可能是更好的解决方案。我可以使用从arr移除,而不是创建新阵列吗,无论如何,谢谢不,除非修改数组对象。查看Jorge的答案,splice可能是更好的解决方案。我忘记了splice:我很抱歉,但是@thg435是更好的答案:,无论如何,谢谢:D@l2aelba当然不用担心。我同意过滤器看起来更简单。请注意zeroflagL对该答案的评论。我忘记了拼接:非常抱歉,但@thg435是更好的答案:,无论如何,谢谢:D@l2aelba当然不用担心。我同意过滤器看起来更简单。请注意zeroflagL对该答案的评论。这是一个很好的解决方案,但请注意ECMAScript第5版的要求。从技术上讲,它总是创建一个新的数组。这是一个很好的解决方案,但请注意ECMAScript第5版的要求。从技术上讲,它总是创建一个新阵列。