自学内容网 自学内容网

Object.values() 、 Object.keys()

拿到当前对象里面的value值

// 假设你有一个对象
const myObject = {
  name: 'Kimi',
  age: 30,
  country: 'Moon'
};

// 获取对象的所有值
const values = Object.values(myObject);

// 输出值数组
console.log(values); // ["Kimi", 30, "Moon"]

如果你需要在 Vue 组件中获取响应式对象的值,你可以使用同样的 Object.values() 函数。在 Vue 3 的组合式 API 中,如果你有一个响应式对象,例如 refreactive,你可以这样获取它的值:

import { reactive } from 'vue';

// 创建一个响应式对象
const myReactiveObject = reactive({
  name: 'Kimi',
  age: 30,
  country: 'Moon'
});

// 获取响应式对象的所有值
const values = Object.values(myReactiveObject);

// 输出值数组
console.log(values); // ["Kimi", 30, "Moon"]

请注意,Object.values() 只能获取对象自身的可枚举属性值,不会获取继承的属性值。如果你的对象中包含了嵌套对象,那么返回的数组将只包含嵌套对象的引用,而不是嵌套对象的值。如果你需要递归地获取所有嵌套对象的值,你可能需要编写一个递归函数来实现这一点。 

 

拿到当前对象里面指定value值的key

// 假设你有一个对象
const myObject = {
  name: 'Kimi',
  age: 30,
  country: 'Moon'
};

// 假设你想找到值为 'Moon' 的键
const valueToFind = 'Moon';
let keyForValue = '';

for (const key of Object.keys(myObject)) {
  if (myObject[key] === valueToFind) {
    keyForValue = key;
    break; // 找到后立即退出循环
  }
}

console.log(keyForValue); // 输出:country

在这个例子中,我们遍历了 myObject 的所有键,并检查每个键对应的值是否等于我们想要找的值 valueToFind。一旦找到匹配的值,我们就得到了对应的键 keyForValue

如果你的对象中有多个相同的值,并且你想要找到所有这些值的键,你可以稍微修改上面的代码来收集所有匹配的键:

const myObject = {
  name: 'Kimi',
  nickname: 'Kimi',
  age: 30,
  country: 'Moon'
};

const valueToFind = 'Kimi';
const keysForValue = Object.keys(myObject).filter(key => myObject[key] === valueToFind);

console.log(keysForValue); // 输出:["name", "nickname"]

在这个例子中,我们使用了 Array.prototype.filter() 函数来创建一个新数组,其中包含了所有与指定值相匹配的键。这样,如果对象中有多个相同的值,你就能获取到所有对应的键。


原文地址:https://blog.csdn.net/weixin_48420104/article/details/142660590

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!