当前位置: 首页 > article >正文

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() 函数来创建一个新数组,其中包含了所有与指定值相匹配的键。这样,如果对象中有多个相同的值,你就能获取到所有对应的键。


http://www.kler.cn/news/332126.html

相关文章:

  • 算法:852.山脉数组的峰顶索引
  • 【论文写作】使用MSE评价如何描述模型优劣
  • 知识图谱入门——5:Neo4j Desktop安装和使用手册(小白向:Cypher 查询语言:逐步教程!Neo4j 优缺点分析)
  • FFT 分析基础-笔记
  • js列表数据时间排序和取唯一值
  • 【数据结构强化】应用题打卡
  • Spring Boot中使用ThreadPoolTaskScheduler实现轻量级多线程定时任务
  • 春日时尚:Spring Boot助力“衣依”服装销售平台
  • 【CTF Web】Pikachu xss之href输出 Writeup(GET请求+反射型XSS+javascript:伪协议绕过)
  • ClickHouse 引擎的选择
  • 【Spring】@RequestMapping、@RestController和Postman
  • GIT 迁移到GIT
  • (JAVA)队列 和 符号表 两种数据结构的实现
  • day22 Collection 迭代器 增强for List
  • 启动服务并登录MySQL9数据库
  • [C++]使用纯opencv部署yolov11目标检测onnx模型
  • 如何使用ChatGPT API及Bito插件
  • Iterm2配置主题和Oh-My-Zsh
  • 螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下docker学习02(yum源切换及docker安装配置)
  • 动手测试:CPU的L1~L3级缓存和内存的读取速度测试