Dae*_*lus 3 javascript exists object node.js
我有一个对象:
var car = {
company: "Honda",
year: "2011",
Model: "Brio"
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否存在一个继承的方法(这是正确的短语吗?)来检查给定对象中是否存在一个值,有点像x.hasOwnProperty, 或if (x in car). 或者,我应该自己写。
我已经做了一些谷歌搜索,但它们都导致 hasOwnProperty 或检查数组中是否存在一个值。
编辑以取悦评论中的所有人:我可以想到两个用例:
检查未定义的键并报告是哪一个
if (!car.isInvalid(car, undefined))
validCarsArray.push (car);
Run Code Online (Sandbox Code Playgroud)检查对象中是否存在一般用户输入
var text = searchBox.input;
validCarArrays.forEach (function (car) {
if (car.hasOwnValue(car, text)) {
displayToUserAsResult (car);
}
});
Run Code Online (Sandbox Code Playgroud)Gib*_*olt 13
假设我们开始
const obj = {foo : "bar"};
Run Code Online (Sandbox Code Playgroud)
const hasValue = Object.values(obj).includes("bar");
Run Code Online (Sandbox Code Playgroud)
// NOTE: Requires obj.toString() if key is a number
const hasProperty = Object.keys(obj).includes("foo");
Run Code Online (Sandbox Code Playgroud)
function hasValueDeep(json, findValue) {
const values = Object.values(json);
let hasValue = values.includes(findValue);
values.forEach(function(value) {
if (typeof value === "object") {
hasValue = hasValue || hasValueDeep(value, findValue);
}
})
return hasValue;
}
Run Code Online (Sandbox Code Playgroud)
function hasPropertyDeep(json, findProperty) {
const keys = Object.keys(json);
let hasProperty = keys.includes((findProperty).toString());
keys.forEach(function(key) {
const value = json[key];
if (typeof value === "object") {
hasProperty = hasProperty || hasPropertyDeep(value, findProperty);
}
})
return hasProperty;
}
Run Code Online (Sandbox Code Playgroud)