Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react中更改数组的某些值_Javascript_Arrays - Fatal编程技术网

Javascript 如何在react中更改数组的某些值

Javascript 如何在react中更改数组的某些值,javascript,arrays,Javascript,Arrays,我在做react项目。我有一个数组,它不是一个状态变量,而是一个常量。数组包含未定义的值作为其元素。我想将未定义的值设为空数组。数组最后应该包含没有未定义值的值。有人能帮忙解决这个问题吗 如果数组是[undefined,1,2,[],我需要将其转换为[],1,2,[] array.forEach(数据集=> (dataSet.dataPoint=(dataSet.dataPoint==未定义)?[]:dataSet.dataPoint) ); 您可以在数组上映射,并在新数组中返回所需的值: ar

我在做react项目。我有一个数组,它不是一个状态变量,而是一个常量。数组包含
未定义的
值作为其元素。我想将
未定义的
值设为空数组。数组最后应该包含没有未定义值的值。有人能帮忙解决这个问题吗

如果数组是[undefined,1,2,[],我需要将其转换为[],1,2,[]

array.forEach(数据集=>
(dataSet.dataPoint=(dataSet.dataPoint==未定义)?[]:dataSet.dataPoint)
);

您可以
在数组上映射
,并在新数组中返回所需的值:

array = array.map(dataSet => 
  (dataSet.dataPoint = (dataSet.dataPoint === undefined) ? [] : dataSet.dataPoint)
);
let数组=[{},{dataPoint:1},{},{dataPoint:2}];
array=array.map(数据集=>
(dataSet.dataPoint=(dataSet.dataPoint==未定义)?[]:dataSet.dataPoint)
);

console.log(数组)
您可以将您的数组映射到另一个数组:

const array2 = array1.map(item => {
  return typeof item === 'undefined'
    ? []
    : item
})

1)当您试图以
forEach
的形式返回数组时,请使用
map
,只需在数组上迭代即可

const array = [undefined, 1,2,[] ]
let newArr = array.map((dataSet) => {
    return dataSet = (dataSet === undefined) ? [] : dataSet
})
console.log(newArr) // [[], 1, 2,[]]

你试过的有什么问题?你的代码似乎做了你想做的事情。这不会变异或重新分配
array
array.filter(item=>item)的值。我得到一个错误,箭头函数不应该返回赋值。eslint@skovy我不想删除这些值。如果值未定义,我想用空数组替换它。我更新了代码段,你试过运行它吗?@skovy array是一个consuse
let
或创建一个新变量
let newArray
?@skovy除了创建新变量还有其他方法吗