gpt4 book ai didi

javascript - 如何获取 Javascript 嵌套对象的所有属性值(不知道键)?

转载 作者:行者123 更新时间:2023-11-30 11:21:51 24 4
gpt4 key购买 nike

在引用如何执行此操作时,我查看了 how-to-get-all-properties-values-of-a-javascript-object-without-knowing-the-key使用 ES6

如果您要扫描的对象有子对象,而您也只需要将它们的值放入一个数组中,您将如何执行此操作。

例子:

var errorData = {"Message":"The request is invalid.","ModelState":{"account.Contact.PrimaryPhone":["Primary Phone is required.","'Primary Phone' should not be empty."]}}

var errors = Object.keys(errorData).map(function (key) {
return errorData[key];
});

没用。

我需要一个像这样列出的数组:

The request is invalid.
Primary Phone is required.
'Primary Phone' should not be empty.

最佳答案

最简单的方法可能是使用递归函数。您可以在现代引擎中这样做:

const errorData = {"Message":"The request is invalid.","ModelState":{"account.Contact.PrimaryPhone":["Primary Phone is required.","'Primary Phone' should not be empty."]}}

const errors = (function flattenValues( obj ) {
return Object.values( obj ).reduce(
( values, value ) => values.concat( typeof value === "object" ? flattenValues( value ) : value )
, [ ] );
} )( errorData );

console.log( errors );

虽然Object.values只有相当新的浏览器支持,所以你可能想要使用具有更高兼容性的东西:

var errorData = {"Message":"The request is invalid.","ModelState":{"account.Contact.PrimaryPhone":["Primary Phone is required.","'Primary Phone' should not be empty."]}}

var errors = (function flattenValues( obj ) {
return Object.keys( obj ).reduce( function ( keys, key ) {
var value = obj[key];
return values.concat( typeof value === "object" ? flattenValues( value ) : value );
}, [ ] );
} )( errorData );

console.log( errors );

关于javascript - 如何获取 Javascript 嵌套对象的所有属性值(不知道键)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49562546/

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