我有一个从数组拼接后存储数据的函数。
const removedItemstax = {};
function findAndRemove1(array, property, value) {
array.forEach(function(result, index) {
if(result[property] === value) {
//Remove from array
var removedItem= array.splice(index, 1);
removedItemstax.push(removedItem);
}
});
}
当我尝试使用下面的代码来映射它以获得不同的值const tax = removedItemstax.map(d => d.taxId)
我收到.map()
不是函数的错误。
但是当我将数组removedItemstax
推送到控制台时,我会看到存储在其中的所有元素。
我在设置状态后通过props传递数组removedItemstax = {}
时出现相同的错误。
映射返回undefined,但推送它直接显示分配给数组的完整数据。我按照常规方法进行映射。
答案 0 :(得分:0)
您可以尝试这种方式:
const removedItemstax = [];
function findAndRemove1(array, property, value) {
array.forEach(function(result, index) {
if(result[property] === value) {
//Remove from array
var removedItem = array.splice(index, 1);
removedItemstax.push(removedItem);
}
});
}
相反removedItemstax
是一个对象,他可以成为一个数组
答案 1 :(得分:0)
我找出了映射时获取undefined
元素的原因。这是因为多维数组存储在属性const removeItemstax = []
中。
我正在使用下面的命令在映射之前将多维数组展平为普通数组。
这是语法:
const removedItemstax1 = [].concat.apply([], removedItemstax);