gpt4 book ai didi

javascript - 如何返回与key匹配的json键?

转载 作者:行者123 更新时间:2023-12-01 02:44:14 25 4
gpt4 key购买 nike

我正在尝试返回一些键并将其与特定值进行匹配。

如果错误键包含“密码”,那么我只想返回带有密码的错误键,在本例中删除带有firstname_empty的错误键。

我想出了这个,但即使在改变了一些逻辑之后,我最终还是因为某种原因返回了所有 3 个。

var key = "password";

var errors = [{
"password_empty": "Password is empty",
"firstname_empty": "First name is required",
"password_min": "Password needs a min of 6 chars"
}];

for(var i in errors){
if(errors.match(key)){
console.log(errors[i]);
}
}

最佳答案

获得所需结果的方法有多种,具体取决于您是要保留原始数据结构并返回新数据结构,还是要改变原始数据。

1)改变原始数据结构 - 从对象中删除属性。

var errors = [{
"password_empty": "Password is empty",
"firstname_empty": "First name is required",
"password_min": "Password needs a min of 6 chars"
}];

function byKeyword(obj, keyword) {
for (let key in obj) {
if (!key.includes(keyword)) delete obj[key];
}
return [obj];
}

let result = byKeyword(errors[0], 'password');
console.log(result);

2) 对对象进行简单循环,将匹配的属性添加到临时对象。

var errors = [{
"password_empty": "Password is empty",
"firstname_empty": "First name is required",
"password_min": "Password needs a min of 6 chars"
}];

function byKeyword(obj, keyword) {
const temp = {};
for (let key in obj) {
if (key.includes(keyword)) temp[key] = obj[key];
}
return [temp];
}

let result = byKeyword(errors[0], 'password');
console.log(result);

3) 与 2 类似,但使用 reduce .

var errors = [{
"password_empty": "Password is empty",
"firstname_empty": "First name is required",
"password_min": "Password needs a min of 6 chars"
}];

function byKeyword(obj, keyword) {
return Object.keys(obj).reduce((acc, key) => {
if (key.includes(keyword)) acc[0][key] = obj[key];
return acc;
}, [{}]);
}

let result = byKeyword(errors[0], 'password');
console.log(result);

编辑:要获取属性值,您只能再次使用循环...

function byKeyword(obj, keyword) {
const temp = [];
for (let key in obj) {
if (key.includes(keyword)) temp.push(obj[key]);
}
return temp;
}

...或减少

function byKeyword(obj, keyword) {
return Object.keys(obj).reduce((acc, key) => {
if (key.includes(keyword)) acc.push(obj[key]);
return acc;
}, []);
}

希望这有用。

关于javascript - 如何返回与key匹配的json键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47366536/

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