如何从数组中删除对象? 我希望从someArray中删除包含名称Kristian的对象。例如:
someArray = [{name:"Kristian", lines:"2,5,10"},
{name:"John", lines:"1,19,26,96"}];
我想实现:
someArray = [{name:"John", lines:"1,19,26,96"}];
如何从数组中删除对象? 我希望从someArray中删除包含名称Kristian的对象。例如:
someArray = [{name:"Kristian", lines:"2,5,10"},
{name:"John", lines:"1,19,26,96"}];
我想实现:
someArray = [{name:"John", lines:"1,19,26,96"}];
当前回答
具有es6箭头功能
let someArray = [
{name:"Kristian", lines:"2,5,10"},
{name:"John", lines:"1,19,26,96"}
];
let arrayToRemove={name:"Kristian", lines:"2,5,10"};
someArray=someArray.filter((e)=>e.name !=arrayToRemove.name && e.lines!= arrayToRemove.lines)
其他回答
你也可以使用地图功能。
someArray = [{name:"Kristian", lines:"2,5,10"},{name:"John",lines:"1,19,26,96"}];
newArray=[];
someArray.map(function(obj, index){
if(obj.name !== "Kristian"){
newArray.push(obj);
}
});
someArray = newArray;
console.log(someArray);
这就是我用的。
Array.prototype.delete = function(pos){
this[pos] = undefined;
var len = this.length - 1;
for(var a = pos;a < this.length - 1;a++){
this[a] = this[a+1];
}
this.pop();
}
那就像说出来一样简单
var myArray = [1,2,3,4,5,6,7,8,9];
myArray.delete(3);
用任何数字代替3。之后的预期输出应该是:
console.log(myArray); //Expected output 1,2,3,5,6,7,8,9
你可以使用以下几种方法从数组中删除项:
//1
someArray.shift(); // first element removed
//2
someArray = someArray.slice(1); // first element removed
//3
someArray.splice(0, 1); // first element removed
//4
someArray.pop(); // last element removed
//5
someArray = someArray.slice(0, someArray.length - 1); // last element removed
//6
someArray.length = someArray.length - 1; // last element removed
如果你想移除x位置的元素,使用:
someArray.splice(x, 1);
Or
someArray = someArray.slice(0, x).concat(someArray.slice(-x));
回复@chill182的评论:您可以使用array从数组中删除一个或多个元素。过滤器或数组。拼接结合数组。findIndex(参见MDN)。
请看这个Stackblitz项目或下面的代码片段:
// non destructive filter > noJohn = John removed, but someArray will not change let someArray = getArray(); let noJohn = someArray.filter( el => el.name !== "John" ); log(`let noJohn = someArray.filter( el => el.name !== "John")`, `non destructive filter [noJohn] =`, format(noJohn)); log(`**someArray.length ${someArray.length}`); // destructive filter/reassign John removed > someArray2 = let someArray2 = getArray(); someArray2 = someArray2.filter( el => el.name !== "John" ); log("", `someArray2 = someArray2.filter( el => el.name !== "John" )`, `destructive filter/reassign John removed [someArray2] =`, format(someArray2)); log(`**someArray2.length after filter ${someArray2.length}`); // destructive splice /w findIndex Brian remains > someArray3 = let someArray3 = getArray(); someArray3.splice(someArray3.findIndex(v => v.name === "Kristian"), 1); someArray3.splice(someArray3.findIndex(v => v.name === "John"), 1); log("", `someArray3.splice(someArray3.findIndex(v => v.name === "Kristian"), 1),`, `destructive splice /w findIndex Brian remains [someArray3] =`, format(someArray3)); log(`**someArray3.length after splice ${someArray3.length}`); // if you're not sure about the contents of your array, // you should check the results of findIndex first let someArray4 = getArray(); const indx = someArray4.findIndex(v => v.name === "Michael"); someArray4.splice(indx, indx >= 0 ? 1 : 0); log("", `someArray4.splice(indx, indx >= 0 ? 1 : 0)`, `check findIndex result first [someArray4] = (nothing is removed)`, format(someArray4)); log(`**someArray4.length (should still be 3) ${someArray4.length}`); // -- helpers -- function format(obj) { return JSON.stringify(obj, null, " "); } function log(...txt) { document.querySelector("pre").textContent += `${txt.join("\n")}\n` } function getArray() { return [ {name: "Kristian", lines: "2,5,10"}, {name: "John", lines: "1,19,26,96"}, {name: "Brian", lines: "3,9,62,36"} ]; } <pre> **Results** </pre>
const someArray = [{name:"Kristian", lines:"2,5,10"}, {name:"John", lines:"1,19,26,96"}];
我们得到对象的索引它的name属性值为"Kristian"
const index = someArray.findIndex(key => key.name === "Kristian");
console.log(index); // 0
通过使用拼接函数我们删除了name属性值为“Kristian”的对象
someArray.splice(index,1);
console.log(someArray); // [{name:"John", lines:"1,19,26,96"}]
使用javascript的splice()函数。
这可能会有帮助:http://www.w3schools.com/jsref/jsref_splice.asp