这是我的功能:
function RemoveOutputKeys(array){
var temp = array;
for(var object in temp){
delete temp[object]['statusCode']
delete temp[object]['statusResponse']
}
console.log(array)
if(temp == array)
console.log("how is this possible?!?!!?!?!")
return temp
}
这是我提供的输入,
array = [{'statusCode':400},{'statusCode':200}]
temp
更新有意义,但我不希望array
更新。我该如何解决这个问题?
由于
答案 0 :(得分:1)
使用 Array.prototype.filter()代替 for
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
function RemoveOutputKeys(array) {
return array.filter(function(myArray) {
if (!myArray['statusCode'] && !myArray['statusResponse']) {
return myArray;
}
});
}
var originalArray = [{'statusCode':400}, {'statusCode':200}, {'test': 'test'}];
var tempArray = RemoveOutputKeys(originalArray);
console.log(originalArray, tempArray);
答案 1 :(得分:0)
如果要创建新数组而不是别名/引用,请使用:
var newArray = oldArray.slice();