xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

js for...of index error All In One

js for...of index error All In One

for...of & index


for (const [i, v] of ['a', 'b', 'c'].entries()) {
  console.log(i, v)
}

.entries()

OK, order (index, obj).entries() ✅

for (const [index, obj] of [{k: 'a'}, {k: 'b'}, {k: 'c'}].entries()) {
  console.log(index, obj);
}
// 0 {k: "a"}
// 1 {k: "b"}
// 2 {k: "c"}

Error, order (obj, index) ❌

for (const [obj, index] of [{k: 'a'}, {k: 'b'}, {k: 'c'}]) {
  console.log(obj, index);
}
// Uncaught TypeError: .for is not iterable

object array bug

error ❌

Uncaught TypeError: .for is not iterable

    const dataShaper = (rows = []) => {
        const result = [];
        const timestamp = Date.now();
        console.log('rows', rows);
        for (const [obj, i] of rows) {
        // for (const obj of rows) {
            // const {
            //     author_id,
            //     name,
            //     nickname,
            //     status,
            //     updated_at,
            // } = obj;
            console.log('obj', obj);
            result.push({
                ...obj,
                uid: timestamp + i,
            });
        }
        console.log('result', result);
        return result;
    };

OK ✅ .entries()

    const dataShaper = (rows = []) => {
        const result = [];
        const timestamp = Date.now();
        console.log('rows', rows);
        for (const [index, obj] of rows.entries()) {
            console.log('index = ', index);
            console.log('obj = ', obj);
            result.push({
                ...obj,
                uid: timestamp + index,
            });
        }
        console.log('result', result);
        return result;
    };

OK ✅ for

    const dataShaper = (rows = []) => {
        const result = [];
        const timestamp = Date.now();
        for (let i = 0; i < rows.length; i++) {
            const obj = rows[i];
            result.push({
                ...obj,
                uid: timestamp + i,
            });
        }
        return result;
    };

test

const rows = [
    {
        "key": "status",
        "title": " 启停状态",
        "sortable": false,
        "dataIndex": "status"
    },
    {
        "key": "name",
        "title": "姓名",
        "sortable": false,
        "dataIndex": "name"
    },
    {
        "key": "nickname",
        "title": "昵称",
        "sortable": false,
        "dataIndex": "nickname"
    },
    {
        "key": "updated_at",
        "title": "更新时间",
        "sortable": false,
        "dataIndex": "updated_at"
    }
];

    const dataShaper = (rows = []) => {
        const result = [];
        const timestamp = Date.now();
        // console.log('rows', rows);
        for (const [index, obj] of rows.entries()) {
            console.log('index = ', index);
            console.log('obj = ', obj);
            result.push({
                ...obj,
                rowUniqueId: timestamp + index,
            });
        }
        // console.log('result', result);
        return result;
    };

dataShaper(rows)

Array.prototype.entries()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/entries

refs

https://developer.cdn.mozilla.net/en-US/docs/Web/JavaScript/Reference/Statements/for...of

https://flaviocopes.com/how-to-get-index-in-for-of-loop/

http://www.webhek.com/javascript-loop-foreach-for-in-for-of



©xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @   xgqfrms  阅读(191)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-04-12 taro ios bug
2020-04-12 js assert All In One
2020-04-12 disable html input & pointer-events
2020-04-12 taro ref & wx.createSeletorQuery
2019-04-12 互联网招聘网站 All In One
2019-04-12 vue & @on-change !== on-change @on-change === @change
2019-04-12 API & YAPI All In One
点击右上角即可分享
微信分享提示