gpt4 book ai didi

javascript - lodash 在数组中查找数组返回未定义

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:28 24 4
gpt4 key购买 nike

我有两个数组

const arr1 = [[1,2],[3,4],[5,6]];
const arr2 = [1,2,3,4,5];

我想获取这些数组中的特定元素来记录
有2种情况:
1/

console.log(_.find(arr1,0,1));
console.log(_.find(arr2,0,1));

它返回 undefinedarr2
2/

console.log(_.find(arr1[1],0,1));

这个也返回undefined
谁能告诉我我在这里缺少什么?

编辑
对于 console.log(_.find(arr1,0,1)); 我和@Mr.7 得到了 2 个不同的结果:我在 Chrome 控制台上得到的结果是 [3,4 ] 但在 jsfiddle 上是 [1,2]Mr.7 相同。我注意到这个 _.find
有一些奇怪的地方这是我的代码:

import _ from 'lodash';

const arr1 = [[1,2],[3,4],[5,6]];
const arr2 = [1,2,3,4,5];
const arr3 = [[0,2],[3,4],[5,6]];

console.log(_.find(arr1,1,1));//[3,4]
console.log(_.find(arr1,0,1));//[3,4]
console.log(_.find(arr2,2));//undefined
console.log(_.find(arr1,0));//[1,2]

console.log(_.find(arr3,0));//[3,4]
console.log(_.find(arr1,1));//[1,2]

最佳答案

您在以下情况下将数字作为第二个参数传递:

Lodash _.find() expects a function as its 2nd argument that is invoked per iteration.

作为第二个参数传入的函数接受三个参数:

  • value - 正在迭代的当前值

  • index|key - 数组的当前索引值或集合的键

  • collection - 对正在迭代的集合的引用

您正在传递需要函数的索引值。

如果你想获取 arr1 中的第二个元素你不需要 lodash,但可以使用括号表示法和索引号直接访问:

arr1[1]

如果你坚持使用 lodash,你可以按如下方式使用 arr1 的第二个元素(尽管你为什么更喜欢这种方法是值得怀疑的):

_.find(
arr1, // array to iterate over
function(value, index, collection){ // the FUNCTION to use over each iteration
if(index ===1)console.log(value) // is the element at position 2?
},
1 // the index of the array to start iterating from
); // since you are looking for the element at position 2,
// this value 1 is passed, although with this set-up
// omitting won't break it but it would just be less efficient

关于javascript - lodash 在数组中查找数组返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40674515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com