通过下划线分别获取数组的键和值

get key and value of array via underscore each

本文关键字:数组 键和值 获取 下划线      更新时间:2023-09-26

我想通过数组循环并获得它的键和值。这就是我正在做的,但是我没有得到任何输出。我做错了什么?

let regexes = [];
regexes['some.thing'] = /([^.]+)[.'s]*/g;
_.each(regexes, function(regex, key) {
    console.log(regex, key);
});

您正在使用array并为其添加一个无效的属性,请使用object

let regexes = {};
regexes['some.thing'] = /([^.]+)[.'s]*/g;
_.each(regexes, function(regex, key) {
    console.log(regex, key);
});

_.each遍历数组的下标。您正在向数组对象添加一个非数字属性。你的数组是空的,_.each回调没有执行。似乎你想使用常规对象({}),而不是数组:

let regexes = {};

现在_.each应该遍历对象拥有的(通过使用hasOwnProperty方法)属性。

你正在给数组分配一个属性。Lodash试图遍历数组的数字索引,但是没有。将数组更改为对象,Lodash将遍历其可枚举属性:

let regexes = {};
regexes['some.thing'] = /([^.]+)[.'s]*/g;
_.forEach(regexes, function(regex, key) {
    console.log(regex, key);
});

或者,如果必须使用数组,只需将值压入数组:

let regexes = [];
regexes.push(/([^.]+)[.'s]*/g);
_.forEach(regexes, function(regex, i) {
    console.log(regex, i);
});