有没有办法找到嵌套对象的 属性 的兄弟值?
Is there a way to find the sibling value of a nested object's property?
这是我的结构:
var obj = {
apple: {
name: "Apple Juice",
description: "",
},
orange: {
name: "Orange Juice",
description: "",
}
}
我想在不使用父项 (obj.apple.description
)
的情况下通过名称查找 apple
或 orange
的描述
是否有类似 obj.apple.name.siblingProperty
的东西可以使用 name
获取 description
的值?
可以遍历对象键,在那个对象中找到name
的索引,然后获取下一个索引得到description
:
var obj = {
apple: {
name: "Apple Juice",
description: "",
},
orange: {
name: "Orange Juice",
description: "",
}
}
function getNextKey(object, key) {
var keys = Object.keys(object);
var keyIndex = keys.indexOf(key);
var nextKey = keys[keyIndex + 1];
console.log(nextKey + ": " + object[nextKey]);
}
getNextKey(obj.apple, "name");
getNextKey(obj.orange, "name");
你应该在你的对象上使用代理,在处理程序中只使用 get 函数,那是 it.now 你可以做任何你想做的事。这是我的代码
const obj = {
apple: {
name: 'Apple Juice',
description: 'apple selected',
},
orange: {
name: 'Orange Juice',
description: 'orange selected',
},
};
const handler = {
get: function (target, prop, receiver) {
return target[prop].description;
},
};
const proxy = new Proxy(obj, handler);
console.log(proxy.apple);
console.log(proxy.orange);
这是我的结构:
var obj = {
apple: {
name: "Apple Juice",
description: "",
},
orange: {
name: "Orange Juice",
description: "",
}
}
我想在不使用父项 (obj.apple.description
)
apple
或 orange
的描述
是否有类似 obj.apple.name.siblingProperty
的东西可以使用 name
获取 description
的值?
可以遍历对象键,在那个对象中找到name
的索引,然后获取下一个索引得到description
:
var obj = {
apple: {
name: "Apple Juice",
description: "",
},
orange: {
name: "Orange Juice",
description: "",
}
}
function getNextKey(object, key) {
var keys = Object.keys(object);
var keyIndex = keys.indexOf(key);
var nextKey = keys[keyIndex + 1];
console.log(nextKey + ": " + object[nextKey]);
}
getNextKey(obj.apple, "name");
getNextKey(obj.orange, "name");
你应该在你的对象上使用代理,在处理程序中只使用 get 函数,那是 it.now 你可以做任何你想做的事。这是我的代码
const obj = {
apple: {
name: 'Apple Juice',
description: 'apple selected',
},
orange: {
name: 'Orange Juice',
description: 'orange selected',
},
};
const handler = {
get: function (target, prop, receiver) {
return target[prop].description;
},
};
const proxy = new Proxy(obj, handler);
console.log(proxy.apple);
console.log(proxy.orange);