gpt4 book ai didi

javascript - 在 Javascript 中遍历字典

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

我是 Javascript 的新手,正在尝试用 Javascript 遍历字典。我可以在 python 中轻松地做到这一点:

for key, value in dict.items():
//do something

在 Javascript 中是否有类似的方法来做同样的事情?

我尝试迭代的结构是:

{ 'meta.num_prod': 4,
'meta.crtd_on': '2015-12-24T06:27:18.850Z',
'meta.last_upd': '2015-12-24T06:46:12.888Z',
's.103114':
{ prod_id: '103114',
product_type: 'normal',
last_updated: '2015-12-24T06:28:44.281Z',
qty: 3,
created_on: '2015-12-24T06:27:18.850Z' },
's.103553':
{ prod_id: '103553',
product_type: 'normal',
last_updated: '2015-12-24T06:46:12.888Z',
qty: 1,
created_on: '2015-12-24T06:46:12.888Z' } }

最佳答案

有多种方法,其中一种标准方法是使用 Object.keys:

你可以做到

Object.keys(obj).forEach(function(key) {
console.log(key + " " + obj[key]);
});

如果您使用的是 jQuery,则可以使用 $.each()像这样的方法:

$.each({ name: "John", lang: "JS" }, function( k, v ) {
console.log( "Key: " + k + ", Value: " + v );
});

或者您可以使用 for...in loop ,但由于有更好的替代品,我认识的大多数人如今已不再使用它们。

for (var prop in obj) {
console.log("obj." + prop + " = " + obj[prop]);
}

如果你最终想要使事情复杂化,你可以使用 es6 generators像这样获得更类似于 python 的语法:

// The asterisk after `function` means that
// `objectEntries` is a generator
function* objectEntries(obj) {
let propKeys = Reflect.ownKeys(obj);

for (let propKey of propKeys) {
// `yield` returns a value and then pauses
// the generator. Later, execution continues
// where it was previously paused.
yield [propKey, obj[propKey]];
}
}

let jane = { first: 'Jane', last: 'Doe' };
for (let [key,value] of objectEntries(jane)) {
console.log(`${key}: ${value}`);
}
// Output:
// first: Jane
// last: Doe

关于javascript - 在 Javascript 中遍历字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34448724/

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