javascriptオブジェクト属性のサブセットはどうやって取得しますか?
3118 ワード
How to get a subset of a javascript object's properties
Say I have an object:オブジェクトがあるということです.
シシ1階
参考:https://stackoom.com/question/1Cblw/javascriptオブジェクト属性のサブセットはどうやって取得しますか?
シシ2階
The e e is nothing like that built-in to the coree library,but you can use object destruct ring to do it…コアライブラリには内蔵されていないものがありますが、対象を使って分解して実現できます.
〹3階
How about:どうですか?
I suggaest taking a look at Lodash;Lodashを見てみたいです.it has a lot of great utility functions.多くの強力なユーティリティ機能を持っています.
For example
〹5階
Note:though the original question asked was for javascript,it can be done jQuery by below solution注意:最初に提出した問題はjavascriptに対するものですが、以下の解決策でjQueryを完成することができます.
あなたのcan exted jquery ifあなたのwant here is the sample code for one slice:jqueryを拡張することができます.スライスの例コードを取得したい場合:
Say I have an object:オブジェクトがあるということです.
elmo = {
color: 'red',
annoying: true,
height: 'unknown',
meta: { one: '1', two: '2'}
};
I want to make a new object with a subset of its properties.その属性のサブセットで新しいオブジェクトを作成したいです. // pseudo code
subset = elmo.slice('color', 'height')
//=> { color: 'red', height: 'unknown' }
How may I achieve this?どうやって実現すればいいですか?シシ1階
参考:https://stackoom.com/question/1Cblw/javascriptオブジェクト属性のサブセットはどうやって取得しますか?
シシ2階
The e e is nothing like that built-in to the coree library,but you can use object destruct ring to do it…コアライブラリには内蔵されていないものがありますが、対象を使って分解して実現できます.
const {color, height} = sourceObject;
const newObject = {color, height};
You could also write a utilit…ユーティリティ関数を作成してもいいです.const cloneAndPluck = function(sourceObject, keys) {
const newObject = {};
keys.forEach((obj, key) => { newObject[key] = sourceObject[key]; });
return newObject;
};
const subset = cloneAndPluck(elmo, ["color", "height"]);
Libries such as Lodash also have _.pick()
.Lodashなどのライブラリも_.pick()
を持っています.〹3階
How about:どうですか?
function sliceObj(obj) {
var o = {}
, keys = [].slice.call(arguments, 1);
for (var i=0; i
〹4階I suggaest taking a look at Lodash;Lodashを見てみたいです.it has a lot of great utility functions.多くの強力なユーティリティ機能を持っています.
For example
pick()
would be exactly what you seek:例えばpick()
はあなたが探しているものです.var subset = _.pick(elmo, ['color', 'height']);
バイオリンをfiddleする〹5階
function splice()
{
var ret = new Object();
for(i = 1; i < arguments.length; i++)
ret[arguments[i]] = arguments[0][arguments[i]];
return ret;
}
var answer = splice(elmo, "color", "height");
シシ6階Note:though the original question asked was for javascript,it can be done jQuery by below solution注意:最初に提出した問題はjavascriptに対するものですが、以下の解決策でjQueryを完成することができます.
あなたのcan exted jquery ifあなたのwant here is the sample code for one slice:jqueryを拡張することができます.スライスの例コードを取得したい場合:
jQuery.extend({
sliceMe: function(obj, str) {
var returnJsonObj = null;
$.each( obj, function(name, value){
alert("name: "+name+", value: "+value);
if(name==str){
returnJsonObj = JSON.stringify("{"+name+":"+value+"}");
}
});
return returnJsonObj;
}
});
var elmo = {
color: 'red',
annoying: true,
height: 'unknown',
meta: { one: '1', two: '2'}
};
var temp = $.sliceMe(elmo,"color");
alert(JSON.stringify(temp));
here is the fiddle for same:http://jsfiddle.net/w633z/これは同じバイオリンです.http:/js fiddle.net/w 633 z/