[英]add key and value in json file using javascript
data.json看起來像
[
{
"uid": 11111,
"status": "ADMIN"
},
{
"uid": 22222
}
]
我用lodash查找鍵uid = 22222
_.find(data,(item)=> item.uid === 22222)
結果是{uid:22222}
我如何添加一些狀態:“值”(我希望通過lodash找到的結果)是這樣的
[
{
"uid": 11111,
"status": "ADMIN"
},
{
"uid": 22222,
"status": "USER"
}
]
您可以使用_.find()
獲取對象,並使用_.set()
更新對象:
var data = [{"uid":11111,"status":"ADMIN"},{"uid":22222}]; _.set(_.find(data, function(obj) { return obj.uid === 22222; }), 'value', 'USER'); _.set(_.find(data, function(obj) { return obj.uid === 23322; }), 'value', 'USER'); // no object was found and nothing changed console.log(data);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
這為您提供了對象,因此您可以直接使用它:
_.find(data, item => item.uid === 22222).status = "USER";
否則,您可以獲取索引並更新整個對象。
const idx = _.findIndex(data, item => item.uid === 22222);
data[idx] = Object.assign(data[idx], {status: "USER"});
根據您所使用的環境,您不需要使用lodash,而可以只使用data.find
。
您不需要lodash,請使用Array.prototype.find :
var arr = [
{
"uid": 11111,
"status": "ADMIN"
},
{
"uid": 22222
}
]
// get correct item in array
var item = arr.find(i => i.uid === 22222)
// object is mutable, array have a pointer to the object
item.status = 'USER'
console.log(arr)
如果您在舊環境( 主要是Internet Explorer )中,請使用Array.prototype.filter :
// will be undefined if not found, so check for that
var item = arr.filter(i => i.uid === 22222)[0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.