Javascript 检查在map()中创建的数组

Javascript 检查在map()中创建的数组,javascript,arrays,Javascript,Arrays,map()返回一个数组作为结果(resultar)。是否可以在map函数中对“中间”创建的数组(intermediateArr)执行检查?在某个地方,必须存储resultar,以便可以连接map()函数的结果或其他内容。有可能访问它吗 假设我想将值推送到一个数组中,如果它们不包括在内的话。我可以做类似的事情 someArr.map(item => { let resultArr= []; if(!resultArr.includes(item)) { res

map()
返回一个数组作为结果(
resultar
)。是否可以在map函数中对“中间”创建的数组(
intermediateArr
)执行检查?在某个地方,必须存储
resultar
,以便可以连接
map()
函数的结果或其他内容。有可能访问它吗

假设我想将值推送到一个数组中,如果它们不包括在内的话。我可以做类似的事情

someArr.map(item => {
    let resultArr= [];
    if(!resultArr.includes(item)) {
        resultArr.push(item);
    }
const resultArr = someArr.map(item => {
    if(!intermediateArr.includes(item)) {
        return item
    }
但是,map已经创建了一个数组。不使用它将是一种“浪费”。大概是

someArr.map(item => {
    let resultArr= [];
    if(!resultArr.includes(item)) {
        resultArr.push(item);
    }
const resultArr = someArr.map(item => {
    if(!intermediateArr.includes(item)) {
        return item
    }
其中,
intermediateArr
是每次迭代后从
map()
函数更新的数组,该数组最后是
resultArr

否,“intermediate”数组是
map
实现的内部数组

然而,你可以使用你想要的。映射将数组的每个元素显式映射到另一个值;结果的长度始终与输入的长度相同。你想要的是非常明确的降价;您可以将数组减少或转换为其他内容

someArr.reduce((acc, item) => {
    if (!acc.includes(item)) {
        acc.push(item);
    }
    return acc;
}, [])
否,“中间”数组是
map
实现的内部

然而,你可以使用你想要的。映射将数组的每个元素显式映射到另一个值;结果的长度始终与输入的长度相同。你想要的是非常明确的降价;您可以将数组减少或转换为其他内容

someArr.reduce((acc, item) => {
    if (!acc.includes(item)) {
        acc.push(item);
    }
    return acc;
}, [])

您可以简单地使用for循环访问中间创建的数组,而不是
map

让someArr=[1,2,4,1,5];
常量resultar=[];
对于(让某个项目的某个项目){
如果(!resultar.includes(item))结果推送(item);
}

console.log(resultar)
而不是
映射
,只需使用for循环即可访问中间创建的数组

让someArr=[1,2,4,1,5];
常量resultar=[];
对于(让某个项目的某个项目){
如果(!resultar.includes(item))结果推送(item);
}
console.log(resultar)
您可以改为使用,其中
intermediateArr
是在函数运行时构建的数组

例如,如果您想在每次迭代中检查项目,可以使用以下方法:

让someArr=[1,2,2,3,3,4,4,5,5,6,7,8,9]
让resultArr=someArr.reduce((中间项,项)=>{
如果(!包括(项目)){
中间耳环推(项目)
}
回程耳环;
}, [])
console.log(resultar.toString())//1,2,3,4,5,6,7,8,9
您可以改用,其中
intermediateArr
是在函数运行时生成的数组

例如,如果您想在每次迭代中检查项目,可以使用以下方法:

让someArr=[1,2,2,3,3,4,4,5,5,6,7,8,9]
让resultArr=someArr.reduce((中间项,项)=>{
如果(!包括(项目)){
中间耳环推(项目)
}
回程耳环;
}, [])

console.log(resultar.toString())//1,2,3,4,5,6,7,8,9
要获取唯一值,可以使用

var数组=[1,2,3,1,2,4,5],
unique=Array.from(新集合(数组));

console.log(唯一)要获取唯一值,可以使用

var数组=[1,2,3,1,2,4,5],
unique=Array.from(新集合(数组));

console.log(唯一)否。但是,您可以筛选从映射返回的数组。什么是
intermediateArr
?你的代码中没有定义它。你想在这里实现什么?@YeldarKurmangaliyev我猜他指的是由map函数内部创建的数组。你真正想要的是
array.from(new Set(someArr))
。否。但是,您可以筛选从映射返回的数组。什么是
intermediateArr
?你的代码中没有定义它。你想在这里实现什么?@YeldarKurmangaliyev我猜他指的是由map函数在内部创建的数组。你真正想要的是
array.from(new Set(someArr))
。请注意,虽然这确实更加明确,但它比
array.from(new Set)要慢得多(数组))
当数组变大时:@Logar在这种特殊情况下,当然有更好的方法来消除数组中的重复数据。这指出了
map
reduce
相比更通用的方法。请注意,虽然这确实更加明确,但这比
array.from(新集合(数组))要慢得多
当阵列变大时:@Logar对于这种特殊情况,当然有更好的方法来消除阵列中的重复数据。这指出了
map
reduce
相比更通用的方法。