我的任务是比较数组中电话号码的值,并返回数字总和为最高数字的元素。为了做到这一点,我决定更换电话号码中的“ - ”,以便元素只包含数字,然后parseInt字符串来比较数字。但是,我坚持第一部分。
当我返回数组时,只返回修改后的第一个元素。我怎么能重写这个,以便返回数组的所有元素?
function largest_phone_number(arr) {
for (var i=0; i<=arr.length; i++) {
var re = /-/g;
arr = arr[i].replace(re, "");
return arr;
}
} //largest_phone_number(['123-456-7777', '963-481-7945', '111-222-3333']);
答案 0 :(得分:0)
当您使用关键字void ofApp::setup(){
ofBackground(0,0,0);
grabber.setPixelFormat(OF_PIXELS_RGB);
// Start the grabber
grabber.setup(640,480);
// Get the native android video grabber
ofxAndroidVideoGrabber* androidGrabber = (ofxAndroidVideoGrabber*)grabber.getGrabber().get();
// Ensure facing the correct direction
androidGrabber->setDeviceID(androidGrabber->getBackCamera());
}
void ofApp::update(){
grabber.update();
if(grabber.isFrameNew()){
// Add frame
ofPixels nextFrame = grabber.getPixels();
frameQueue.push(nextFrame);
}
}
void ofApp::draw(){
// Calculate aspect ratio of grabber image
float grabberAspectRatio = grabber.getWidth() / grabber.getHeight();
// Draw camera image centered in the window
ofPushMatrix();
ofSetHexColor(0xFFFFFF);
ofSetRectMode(OF_RECTMODE_CENTER);
ofTranslate(ofGetWidth() / 2, ofGetHeight() / 2);
// Initial check that the next frame should be rendered
if ( ! frameQueue.empty() ) {
ofPixels nextFrame = frameQueue.front();
grabberImage.setFromPixels(nextFrame);
grabberImage.mirror(false, true);
grabberImage.update();
// Advance
frameQueue.pop();
}
if ( grabberImage.isAllocated() ) {
if(ofGetWidth() > ofGetHeight()) {
grabberImage.draw(0, 0, ofGetHeight() * grabberAspectRatio, ofGetHeight());
} else {
grabberImage.draw(0, 0, ofGetWidth(), ofGetWidth() * 1.0/grabberAspectRatio);
}
}
ofPopMatrix();
ofSetRectMode(OF_RECTMODE_CORNER);
}
时,当前上下文将停止运行。因此,您的函数将在循环的第一次迭代后停止。
您的情况非常适合使用return
功能。我可能会建议您执行以下操作:
Array.map()
这将返回一个没有连字符的新数组。