字符串从头到尾开始

问题描述 投票:0回答:1

我有一个函数,可以将所有键值与来自 json 字符串的

|
连接起来,但是当我连接所有内容时,它会从头到尾连接
itemsObj

{
    "100_npc": {
      "uniqueId": 9000234,
      "username": "[NPC]Pelican",
      "bitmask": 1,
      "itemsObj": {
        "colour_id": 0,
        "head": 0,
        "face": 0,
        "neck": 0,
        "body": 0,
        "hand": 0,
        "feet": 0,
        "flag_id": 0,
        "photo_id": 0,
        "x_corr": 100,
        "y_corr": 100,
        "frame": 0,
        "is_member": 1,
        "total_membership_days": 0
      },
      "isEnabled": true
    }
}
function onloadCompleteNPC(event) {
    var _loc4 = event.target.data;
    for (var key in _loc4) {
        if (_loc4.hasOwnProperty(key)) {
            var item = _loc4[key];
            var roomId = key.split('_')[0];
            if(roomId === "130") {
                var joinArr = [item.uniqueId, item.username];
                for (var objKey in item.itemsObj) {
                    joinArr.push(item.itemsObj[objKey]);
                }
                var npcStr = joinArr.join('|');
                Test(npcStr, roomId);
            }
        }
    }
}

function Test(str, roomId) {
    trace("NPC String: " + str + " Room ID: " + roomId);
}

结果

 9000251|[NPC]Pelican|0|1|0|100|100|0|0|0|0|0|0|0|0|0 

预期结果应如下所示,但并非如此。

 9000251|[NPC]Pelican|0|0|0|0|0|0|0|0|0|100|100|0|1|0

代码似乎可以在 Javascript 中运行,但在 actionscript 中却行不通。我试过用

reverse()
反转字符串,但这不起作用。

javascript actionscript
1个回答
0
投票

这对你有用吗?

const obj = {
    "100_npc": {
      "uniqueId": 9000234,
      "username": "[NPC]Pelican",
      "bitmask": 1,
      "itemsObj": {
        "colour_id": 0,
        "head": 0,
        "face": 0,
        "neck": 0,
        "body": 0,
        "hand": 0,
        "feet": 0,
        "flag_id": 0,
        "photo_id": 0,
        "x_corr": 100,
        "y_corr": 100,
        "frame": 0,
        "is_member": 1,
        "total_membership_days": 0
      },
      "isEnabled": true
    }
}

function flatten(a,o) {
    if (typeof o !== 'object') {
        a.push(o);
    } else {
        const v = Object.values(o);
        for (const vv of v) {
            flatten(a,vv);
        }
    }
}

const a = [];

flatten(a,obj['100_npc']);

const valueString = a.join('|');

console.log(valueString);

© www.soinside.com 2019 - 2024. All rights reserved.