আমার মতো একটি জাভাস্ক্রিপ্ট অবজেক্ট রয়েছে
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
}
আমি কীভাবে এই অবজেক্টে কীগুলির দৈর্ঘ্য এবং তালিকা পেতে পারি?
আমার মতো একটি জাভাস্ক্রিপ্ট অবজেক্ট রয়েছে
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
}
আমি কীভাবে এই অবজেক্টে কীগুলির দৈর্ঘ্য এবং তালিকা পেতে পারি?
উত্তর:
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
};
var keys = [];
for (var k in obj) keys.push(k);
alert("total " + keys.length + " keys: " + keys);
keys।
Object.prototype, যা আপনাকে যাইহোক করা উচিত নয়। কাস্টম নির্মাণকারীদের জন্য, যদিও আপনি ঠিক বলেছেন।
[]এটা (বা array()তখন) এটি একটি অ্যারের, যেটি আপনি পরে নিরাপদে একটি অ্যারে হিসাবে ব্যবহার করতে পারেন করে তোলে।
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
}
var keys = Object.keys(obj);
console.log('obj contains ' + keys.length + ' keys: '+ keys);
এটি এখন বেশিরভাগ প্রধান ব্রাউজারগুলিতে সমর্থিত ।
for(key in ob)! Object.keysপ্রোটোটাইপগুলি থেকে কীগুলি তালিকাভুক্ত করবে .. in objনা , তবে করবে ।
অ্যান্ডস্কোর.জেএস রূপান্তরকে বেশ পরিষ্কার করে তোলে:
var keys = _.map(x, function(v, k) { return k; });
সম্পাদনা: আমি মিস করেছি যে আপনি এটিও করতে পারেন:
var keys = _.keys(x);
আপনি যদি কেবল সেই চাবিগুলি চান যা নির্দিষ্ট নির্দিষ্ট অবজেক্টের জন্য নির্দিষ্ট এবং কোনও উত্পন্ন prototypeবৈশিষ্ট্য নয়:
function getKeys(obj) {
var r = []
for (var k in obj) {
if (!obj.hasOwnProperty(k))
continue
r.push(k)
}
return r
}
উদাহরণ:
var keys = getKeys({'eggs': null, 'spam': true})
var length = keys.length // access the `length` property as usual for arrays
var keys = new Array();
for(var key in obj)
{
keys[keys.length] = key;
}
var keyLength = keys.length;
অবজেক্ট থেকে কোনও মান অ্যাক্সেস করতে আপনি আপত্তি [কী] ব্যবহার করতে পারেন;
keys.lengthযা প্রতিটি পুনরাবৃত্তির জন্য পৃথক পৃথক হিসাবে প্রতিটি পুনরাবৃত্তি একটি মান সন্নিবেশ করে।
অনুরাগের উত্তরটি মূলত সঠিক। তবে Object.keys(obj)পুরানো ব্রাউজারগুলিতে সমর্থন করার জন্য আপনি নীচের কোডটি https://developer.mozilla.org/en-US/docs/Web/JavaScript/References/Global_Objects/Object/keys থেকে অনুলিপি করে ব্যবহার করতে পারেন
। এটি Object.keys(obj)ব্রাউজার থেকে পাওয়া না গেলে পদ্ধতিটি যুক্ত করে ।
if (!Object.keys) {
Object.keys = (function() {
'use strict';
var hasOwnProperty = Object.prototype.hasOwnProperty,
hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'),
dontEnums = [
'toString',
'toLocaleString',
'valueOf',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'constructor'
],
dontEnumsLength = dontEnums.length;
return function(obj) {
if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
throw new TypeError('Object.keys called on non-object');
}
var result = [], prop, i;
for (prop in obj) {
if (hasOwnProperty.call(obj, prop)) {
result.push(prop);
}
}
if (hasDontEnumBug) {
for (i = 0; i < dontEnumsLength; i++) {
if (hasOwnProperty.call(obj, dontEnums[i])) {
result.push(dontEnums[i]);
}
}
}
return result;
};
}());
}
ECMAScript 5 সমর্থন করে এমন ব্রাউজারগুলির জন্য পুনরাবৃত্ত সমাধান:
var getObjectKeys = function(obj) {
var keys = Object.keys(obj);
var length = keys.length;
if (length !== 0) {
for (var i = 0; i < length; i++) {
if (typeof obj[keys[i]] === 'object') {
keys[keys[i]] = getObjectKeys(obj[keys[i]]);
}
}
}
return keys;
};
ব্যবহার করুন Object.keys()... এটি যাওয়ার উপায়
সম্পূর্ণ লিখিতকরণ নীচে লিঙ্কিত MDN সাইটে উপলব্ধ:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
যদি আপনি অ্যান্ডস্কোর.জেএস ব্যবহার করার সিদ্ধান্ত নেন তবে আপনি আরও ভাল করতে পারেন
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
}
var keys = [];
_.each( obj, function( val, key ) {
keys.push(key);
});
console.log(keys.lenth, keys);
জাভাস্ক্রিপ্টে, কোনও অবজেক্ট হ'ল স্ট্যান্ডলোন সত্তা, বৈশিষ্ট্য এবং প্রকার সহ।
অ্যারে আকারে অবজেক্ট থেকে মানগুলি আনার জন্য: অবজেক্ট। মূল্যগুলি ( অবজেক্ট ) // আপজ অবজেক্টের নাম যা আপনি ফলাফল ব্যবহার করেছেন -> ["মান 1", "মান 2", "মান 3", "মান 4"]
অ্যারে আকারে অবজেক্ট থেকে কীগুলি আনার জন্য: অবজেক্ট .কি (objজ) // আপজেক্টের নাম যা আপনি ফলাফল ব্যবহার করেছেন -> ["কী 1", "কী 2", "কী 3", "কী 4"]
উভয় ফাংশন অ্যারে ফিরিয়ে দিলে আপনি দৈর্ঘ্যের সম্পত্তি ব্যবহার করে কী বা দৈর্ঘ্যের মান পেতে পারেন value উদাহরণস্বরূপ - অবজেক্ট। মূল্যসমূহ ( অবজেক্ট )। দৈর্ঘ্য বা অবজেক্ট .কিগুলি (আপত্তি)। দৈর্ঘ্য
ES6 ব্যবহার করে forEachআপনি কোনও অবজেক্টের কীগুলি দিয়ে পুনরাবৃত্তি করতে পারেন । সমস্ত কী পেতে আপনি ব্যবহার করতে পারেন Object.keysযা কোনও বস্তুর সমস্ত কী প্রদান করে
Object.keys(obj).forEach(function(keyValue, index, map) {
console.log(keyValue);
});
উপরের স্নিপেটের সংক্ষিপ্ত হাত হবে, যা কেবলমাত্র একটি প্যারামিটার নেয়
Object.keys(obj).forEach(function(keyValue) {
console.log(keyValue);
});
if(props.userType){
var data = []
Object.keys(props.userType).map(i=>{
data.push(props.userType[i])
})
setService(data)
}
স্লাইস ব্যবহার করে প্রয়োগ করুন এবং পদ্ধতিতে যোগদান করুন।
var print = Array.prototype.slice.apply( obj );
alert('length='+print.length+' list'+print.join());