ここから本文です

【土下座:誰でも答えてください】Javascriptの連想配列の置換について質問です。 ...

kab********さん

2019/6/1210:32:29

【土下座:誰でも答えてください】Javascriptの連想配列の置換について質問です。
連想配列内のnullを特定の文字に変えるにはどうしたらいいですか?

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
41
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

glo********さん

リクエストマッチ

2019/6/1218:16:48

「連想配列内のnull」の意味がイマヒトツわかりませんが
「連想配列内の キー または 値 に null が存在する」
ということでしょうか?

例えばこんな感じ↓

let obj = {
    AAA:null,
    BBB:123,
    CCC:{
        aaa:null,
        bbb:123
    },
    null:"DDD"
};

もしそうであるとした場合
一応,次の【テスト1】ようにすれば
null を "hoge" に置換できますよ。



◎【テスト1】(HTML全文例)


<!DOCTYPE html>
<html>
<head>
<title>Test 1</title>
<script>

let obj = {
    AAA:null,
    BBB:123,
    CCC:{
        aaa:null,
        bbb:123
    },
    null:"DDD"
};

console.log(obj);

obj = JSON.stringify(obj);

console.log(obj);

obj = obj.replace(/null:/g, 'hoge');
obj = obj.replace(/:null/g, ':"hoge"');

console.log(obj);

obj = JSON.parse(obj);

console.log(obj);

</script>
</head>
<body>
</body>
</html>



上の結果
"最初" の console.log(obj) で
コンソールとして次のような結果が表示されて

Object
    AAA: null
    BBB: 123
    CCC: {aaa: null, bbb: 123}
    null: "DDD"

"最後" の console.log(obj) で
コンソールとして次のような結果が表示されると思います。

Object
    AAA: "hoge"
    BBB: 123
    CCC: {aaa: "hoge", bbb: 123}
    null: "DDD"



上の【テスト1】は
「なぜそうなるのか?」という説明を兼ねているため
段階的な長々としたスクリプトにしていますが
次の【テスト2】のように書き直せば
一発(1行)で同じことをすることができます。



◎【テスト2】


<!DOCTYPE html>
<html>
<head>
<title>Test 2</title>
<script>

let obj = {
    AAA:null,
    BBB:123,
    CCC:{
        aaa:null,
        bbb:123
    },
    null:"DDD"
};

console.log(obj);

obj = JSON.parse(JSON.stringify(obj).replace(/null:/g,'hoge').replace(/:null/g,':"hoge"'));

console.log(obj);

</script>
</head>
<body>
</body>
</html>

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる