为了账号安全,请及时绑定邮箱和手机立即绑定

使用 lodash 访问对象

使用 lodash 访问对象

神不在的星期二 2023-05-11 10:26:55
我正在尝试使用 indexOf 在如下所示的数组中查找键const areaCode = [    {        "area_code": 656,        "city": "city1"    },    {        "area_code": 220,        "city": "city2"    },    {        "area_code": 221,        "city": "city3"    }]export default areaCode然后我试图根据 area_code 号码获取城市名称const code = inputlet found = indexOf(areaCode, ["area_code", code]);const city = areaCode[found].city但是发现是-1,我做错了什么?
查看完整描述

3 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

你应该使用 Lodash _.find 函数。


它会是这样的:


const areaCode = [

{

    "area_code": 656,

    "city": "city1"

},

{

    "area_code": 220,

    "city": "city2"

},

{

    "area_code": 221,

    "city": "city3"

}]

const code = input;

const found = _.find(areaCode, function(a){ return a.area_code == code });

console.log(found.city)

const found 将保存匹配区域。


https://lodash.com/docs/4.17.15#find


查看完整回答
反对 回复 2023-05-11
?
慕的地10843

TA贡献1785条经验 获得超8个赞

我相信_.findIndex()

let found = findIndex(areaCode, ["area_code", code]);


查看完整回答
反对 回复 2023-05-11
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

根据文档_.indexOf将执行SameValueZero比较来定位索引。简而言之,因为indexOf(data, item)它会尝试使用===to compareitemdata.

相反,您可以使用which accepts将被接受的_.findIndex常用简写:_.matchesProperty_.iteratee

const { findIndex } = _;


const areaCode = [

    {

        "area_code": 656,

        "city": "city1"

    },

    {

        "area_code": 220,

        "city": "city2"

    },

    {

        "area_code": 221,

        "city": "city3"

    }]


const code = 220;


let found = findIndex(areaCode, ["area_code", code]);

console.log("index:", found);


const city = areaCode[found].city

console.log("city:", city);

<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>


虽然,鉴于您的用法,您可能想要_.find


const { find } = _;


const areaCode = [

    {

        "area_code": 656,

        "city": "city1"

    },

    {

        "area_code": 220,

        "city": "city2"

    },

    {

        "area_code": 221,

        "city": "city3"

    }]


const code = 220;


let found = find(areaCode, ["area_code", code]);

console.log("index:", found);


const city = found.city

console.log("city:", city);

<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>



查看完整回答
反对 回复 2023-05-11
  • 3 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信