`

for in方法遍历对象属性与优化嵌套循环

阅读更多
①for in 语句循环遍历 JavaScript 对象,每循环一次,都会取得对象的一个属性或方法。

语法:
for(valueName  in  ObjectName){
    // 代码块
}
其中,valueName 是变量名,保存着属性或方法的名称,每次循环,valueName 的值都会改变。

实例:
var item_info = {'ITEM000000':{
        barcode: 'ITEM000000',
        name: '可口可乐',
        unit: '瓶',
        price: 3.00
},'ITEM000004':{
         barcode: 'ITEM000004',
        name: '电池',
        unit: '个',
        price: 2.00}};
for(var j in item_info)----->【j为变量名,每循环一次都会改变。】
{shopping_list='名称:'+item_info[j].name}

②创建空对象代替嵌套循环进行优化

var item_info = {};
  for(var i=0;i<inputs.length;i++){
      if(item_info[inputs[i].barcode]){---->【表示存在该condition】
        item_info[inputs[i].barcode].count+= 1;---->【最好用有针对性的数据表示键】
       }else{
           inputs[i].count = 1;
           item_info[inputs[i].barcode] = inputs[i];
        }
   }

③命名

一般为名词  函数多用动词     
分享到:
评论

相关推荐

    使用递归遍历对象获得value值的实现方法

    这个函数通过`for...in`循环遍历对象的所有属性。如果属性的类型是`"object"`,说明这是一个子对象,函数会递归调用自身来处理这个子对象。如果属性不是一个对象,那么它应该是一个值,函数将其打印出来。 在执行`f...

    vue遍历对象中的数组取值示例

    在Vue.js中,遍历对象中的数组并获取其值是一个常见的需求,特别是在处理从后端获取的数据时。...在遍历对象数组时,需要注意优化性能,以及适当地处理不同类型的值,以确保代码的健壮性和可维护性。

    JS 对象,属性

    除了 `Object.keys()` 外,还可以使用 `for...in` 循环遍历对象的所有可枚举属性,包括其原型链上的属性。 八、浅拷贝与深拷贝 对象复制时,需要区分浅拷贝和深拷贝。浅拷贝仅复制对象的第一层属性,而深拷贝会递归...

    JS动态遍历json中所有键值对的方法(不知道属性名的情况)

    这段代码中,`for...in`循环用于遍历对象的所有可枚举属性。`prop`变量将依次获取到`jsonObj`对象中的每个键名,然后我们可以通过`jsonObj[prop]`来获取对应的值。 在实际开发中,我们可能还需要处理嵌套的JSON对象...

    JS实现水平遍历和嵌套递归操作示例

    在JavaScript中,水平遍历数组通常使用`for`循环、`forEach`方法,遍历对象则通常使用`for...in`循环或`Object.keys()`配合`forEach`。 例如,遍历一个简单的数组: ```javascript let arr = [1, 2, 3, 4]; arr....

    vue2.0使用v-for循环制作多级嵌套菜单栏

    `v-for`是用来遍历数组或对象的指令,其基本语法如下: ```html &lt;element v-for="item in items" :key="item.id"&gt; &lt;!-- 内容 --&gt; ``` 这里的`items`是你要遍历的数据源,`item`是当前遍历到的元素,而`:key`用于...

    在vue的v-for中使用索引index值

    在Vue.js框架中,`v-for`指令是一个非常重要的特性,用于遍历数组或对象,渲染列表或重复的模板。当我们需要在`v-for`循环中跟踪每个项目的唯一标识或执行特定操作时,可以利用其提供的索引`index`值。下面我们将...

    浅谈vue.js中v-for循环渲染

    在遍历对象时,v-for的in关键词可以被of所替代,官方表示这样的语法更接近JavaScript迭代器的标准,但在实际使用中,二者没有区别。 当需要渲染一个数组时,可以使用v-for指令直接遍历数组元素。对于数组,v-for的...

    JS性能优化技巧

    - 避免使用`for-in`循环,因为它们会遍历对象的所有属性,包括原型链上的属性,效率较低。推荐使用`for(;;)`或`while()`循环,它们的性能基本相当。 - 在`for`循环中,如果循环变量需要递增或递减,使用嵌套的`++`...

    前端57道面试题及答案.docx

    - `for...in` 用于遍历对象的属性,包括原型链上的属性。 - `for...of` 可以遍历数组和某些实现了迭代器协议的对象,对于对象需要配合`Object.keys()`。 7. **箭头函数**: - 箭头函数没有自己的`this`,它会...

    birt-jsonparser

    5. **遍历和操作JSON对象**:解析后的JSON对象是一个JavaScript对象,可以使用传统的JavaScript对象操作方法,如`for...in`循环或者`Object.keys()`来遍历属性,`object.key`或`object['key']`来访问值,以及`object...

    Javascript数组Array基础介绍_.docx

    遍历数组不要使用 `for in` 循环遍历数组,因为 `for in` 会遍历原型链上的全部属性,但我们并不需要这么多。推荐使用 `for` 循环的方式来遍历数组。例如,`var arr1 = [1, 2, 3]; for (var i = 0, len = arr1....

    原生js实现jquery函数animate()动画效果的简单实例

    - 在遍历对象的属性时,需要判断每一个属性是否已经达到了目标值。 - 为了避免单个属性达到目标值后立即清除定时器导致其他动画属性未完成的情况,引入了flag变量。 - 在改变透明度属性时,需要特别处理,因为透明度...

    求一个自定义对象的深度

    在实际应用中,你可能需要根据具体需求对这个方法进行优化,例如处理循环引用的情况,或者添加错误处理机制来应对无法正确解析的对象类型。此外,如果你的自定义对象不是基于NSArray的,可能需要调整这段代码以适应...

    js代码-遍历json,拼接同一字段

    `for...in`循环可以遍历对象的所有可枚举属性,而`Object.keys()`则返回一个包含对象所有自身可枚举属性名称的数组。 当我们要拼接同一字段时,首先需要确定这个字段在JSON对象中的键(key)。假设我们有一个JSON...

    详解js中的对象的深浅拷贝

    1. **通用循环**:可以通过`for...in`循环遍历对象并创建新的对象,将属性逐一复制过来。 2. **`Object.assign()`**:这是ES6引入的方法,可以合并多个对象到一个新对象上,但它是浅拷贝。 3. **扩展运算符(`...`)...

    js代码-深拷贝优化

    通过遍历对象的所有属性,然后为新对象添加这些属性,可以实现深拷贝。这适用于包含任意类型属性的对象,但性能较低。 ```javascript function deepCopy(obj) { let copy = Array.isArray(obj) ? [] : {}; for ...

    ES6经典面试题.docx

    但是作为对象的 key 时不能被 for-in 循环遍历出来。 10. Set 是什么,有什么作用? Set 是一种类似于数组的数据结构,但是每个元素都必须是唯一的,常用于数组的去重。 11. Map 是什么,有什么作用? Map 是一...

    nodeJS 注意事项

    - **正确做法**:将嵌套的对象属性存储在一个临时变量中,以避免多次查找。 ```javascript const obj = { prop: { value: 'example' } }; const temp = obj.prop.value; for (;;) { if (temp) { console....

Global site tag (gtag.js) - Google Analytics