お世話になります。
以下のようなコードで試しています。
マップの要素を全部読みます。
各要素のV1という配列を順番に読みます。
numに設定した値(例では34)が見つかれば、
変数numにコロンをつけた値(例では:34)を
KEYから取り除いて、KEYに上書きさせようとしています。
コンソール上で中間出力でk:12:56:78が一瞬表示されるので
出来たかなと思ったのですが、最終出力を見ると
もとのままk:12:34:56:78になっており変化無しです。
何故かわからず、途方にくれております。
どなた様かお知恵拝借出来ませんでしょうか。
<コード>
mmap = new Map();
num = 34;
mmap.set("k:12:34:56:78", {
"v1": [12, 34, 56, 78],
"V2": ["aa", "bb", "cc", "dd"] //cc
});
mmap.set("k:12:78", {
"v1": [12, 78],
"V2": ["aa", "dd"] //cc
});
mapDisp("bef", mmap);
mmap.forEach(function(value, key, map) {
tmp = value.v1;
len = tmp.length;
for (i = 0; i < len; i++) {
if (tmp[i] == num) {
key = key.replace(":"+num,"")
console.log(key);
break;
}
}
});
mapDisp("aft", mmap);
function mapDisp(situation, targetMap) { //@testcode
console.log("<-------------------------------" + situation + "-----------------------------------start");
console.log("size:" + targetMap.size);
targetMap.forEach(function(value, key, map) {
console.log("m:" + JSON.stringify(key) + "\nv: " + JSON.stringify(value) + "\n--");
});
console.log("<-------------------------------------------------------------------------------------end");
}
<結果>
<-------------------------------bef-----------------------------------start
size:2
m:"k:12:34:56:78"
v: {"v1":[12,34,56,78],"V2":["aa","bb","cc","dd"]}
m:"k:12:78"
v: {"v1":[12,78],"V2":["aa","dd"]}
<-------------------------------------------------------------------------------------end
k:12:56:78
<-------------------------------aft-----------------------------------start
size:2
m:"k:12:34:56:78"
v: {"v1":[12,34,56,78],"V2":["aa","bb","cc","dd"]}
m:"k:12:78"
v: {"v1":[12,78],"V2":["aa","dd"]}
<-------------------------------------------------------------------------------------end
<環境>
npm: '2.10.1',
http_parser: '2.3',
modules: '14',
node: '0.12.4',
openssl: '1.0.1m',
uv: '1.5.0',
v8: '3.28.71.19',
zlib: '1.2.8'
windows7 32bit
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/16 03:47
2015/08/16 06:53
2015/08/17 00:45